Единый центр документации

От настройкидо первого чека.

Одна последовательная инструкция: модель данных, точные формулы программы, ЭВОТОР, OTP, карты, безопасность, запуск и все публичные методы.

О статусе 40 операций

Реализованы 39 путей индексированного каталога и отдельно документированный PUT /retail/giftCard. PARTIAL означает, что отдельные закрытые поля, CRM/RFM-фильтры или внутренние правила BonusPlus ещё требуют сверки на реальном аккаунте. Документация не выдаёт HTTP-паритет за проверенную идентичность бизнес-логики.

01 · Быстрый старт

Рабочая интеграция за четыре шага

Компания определяется API‑ключом. Передавать tenant ID в пользовательских запросах не нужно и нельзя — это защищает данные разных компаний от смешивания.

  1. 1
    Создайте компанию

    Зарегистрируйтесь в кабинете. Компания, программа, подписка и первый безопасный ключ создаются транзакционно.

  2. 2
    Настройте программу

    В разделе «Программа» задайте начисление, скидку и списание. Сохранение создаёт новую неизменяемую версию.

  3. 3
    Добавьте точку и ЭВОТОР

    Создайте магазин, привяжите терминал и выпустите для него отдельный ключ с preset «ЭВОТОР».

  4. 4
    Проведите тестовый чек

    Найдите подтверждённого клиента, запросите quote, примените скидку на кассе, затем hold и commit.

Проверка доступаHTTP
GET /v1/company HTTP/1.1
Host: api.landlancer.online
Authorization: Bearer loy_live_••••••
Accept: application/json

02 · Модель данных

Как связаны компания, клиент и покупка

Компания

Отдельная клиентская база, программа и подписка. У компании может быть несколько торговых точек и касс.

Клиент

Профиль связан с программой лояльности. Если включено подтверждение номера, регистрация завершается после верного кода из SMS.

Баланс

Рассчитывается по журналу операций. Партии бонусов сохраняют сроки активации и сгорания, а возврат связан с исходной покупкой.

Версия правил

Каждый quote хранит policyVersionId. Новая настройка влияет только на новые расчёты и не переписывает старые чеки.

Телефон + OTPКлиент и картаQuoteHoldПродажа / возврат

03 · Правила программы

Настройки и расчёт бонусов

Кабинет не хранит отдельную копию настроек: он создаёт активную policy version, которую читают checkout API и приложение ЭВОТОР.

Процент начисленияrewardRate

Для PERCENT: база × ставка. 5% хранится как 0.05.

Режим начисленияaccrualMode

NONE отключает начисление; PERCENT использует ставку; SPEND_STEP начисляет фиксированное число баллов за полный шаг суммы.

Максимум списанияmaxDebitPercent

Ограничивает долю суммы после внешней и внутренней скидки, которую можно оплатить баллами.

Автоматическая скидкаdiscountPercent

Применяется к каждой строке до списания баллов.

Минимум списанияminimumRewardDebit

Если доступный или запрошенный объём ниже порога, списание равно нулю.

Кратность списанияrewardDebitMultiplicity

Максимум и запрос округляются вниз до заданного шага, например до 25 баллов.

База начисленияrewardCreditBase

GROSS — исходная сумма; PAYABLE — итог после скидок и списания.

ОкруглениеrewardRoundingMode

NONE — до копеек; MATHEMATICAL — до целого по правилам математики; DOWN — вниз до целого.

Совмещение механикcombination flags

Пять отдельных флагов запрещают скидку, начисление или списание при внешней скидке и/или списании баллов.

Активация и срокactivation / lifetime

Новые баллы могут стать доступными позже и сгореть через заданное число дней.

04 · Только ЭВОТОР

От расчёта на кассе до закрытого чека

До установки

  • Создайте торговую точку и терминал с sourceSystem EVOTOR.
  • Подтвердите публикацию текущей версии в ЭВОТОР.Маркет, затем откройте карточку 12K Loyalty и выберите кассу.
  • Получите в кабинете одноразовый код привязки и введите его в приложении.

Во время продажи

  • Приложение ищет клиента по телефону или QR‑карте.
  • Quote возвращает построчную скидку, доступное списание и начисление.
  • После применения скидки создаётся hold; закрытый фискальный чек подтверждается commit.
  • Повтор запроса безопасен благодаря Idempotency-Key.

Что нельзя подтвердить без оборудования: совместимость конкретной прошивки, сканер, печать extras и поведение после аппаратного обрыва сети требуют финальной проверки на физическом ЭВОТОР.

05 · Клиентские каналы

Регистрация по коду и цифровые карты

SMS OTPПодтверждение номера

Если подтверждение включено в правилах, клиент регистрируется после верного кода. Провайдер настраивается владельцем компании; код хранится в защищённом виде.

Номер карты и QR-код выдаются через API карты участника. Баланс запрашивается отдельно для актуального отображения.

06 · Доступ и безопасность

Ключи по назначению, правила под усиленным контролем

Bearer‑ключ

Секрет показывается один раз, в базе остаётся HMAC digest. Один ключ — одно приложение или одна касса.

Scopes

Ключ получает только нужные права. Preset ЭВОТОР не управляет webhooks или настройками компании.

Изменение процентов

Обычный и бессрочный ключ не получает policies:write. Для миграции нужен отдельный ключ максимум на 24 часа.

Подписка

Истёкшая подписка блокирует операционный API и приложение ЭВОТОР. Незавершённые hold, commit и возвраты можно безопасно завершить.

Коды и персональные данные

Коды подтверждения, Authorization, API-ключи и пароли не должны попадать в журналы приложения.

07 · Запуск

Подготовка к запуску

Настройте в кабинете
  • Программу и правила бонусов
  • Торговые точки и кассы
  • Права сотрудников и API-ключи
  • Подтверждение номера и согласия
  • Акции и оформление карт
Проверьте подключения
  • Назначение тарифа администратором
  • Настройки SMS-провайдера
  • Публикацию приложения и тест на вашем ЭВОТОР
  • Нужные операции при переносе с BonusPlus

Онлайн-оплата пока не подключена. Тариф, срок и лимит касс администратор назначает после согласования. Отправка SMS требует отдельного подключения провайдера.

Состояние сервиса

2
GET/health

Проверить доступность API

READY

Возвращает короткий ответ процесса без обращения к базе данных.

не требуетсябез scope
Контракт запроса и ответа
Response modelsobject
Открыть поля и ограничения модели →
GET/ready

Проверить готовность API

READY

Проверяет соединение с PostgreSQL и возвращает готовность сервиса принимать запросы.

не требуетсябез scope
Контракт запроса и ответа
Response modelsobject
Открыть поля и ограничения модели →

12K REST API

81
GET/v1/api-credentials

Получить API-ключи

READY

Возвращает метаданные ключей без их секретных значений.

Authorization: Bearer loy_live_…credentials:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsCredentialListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/api-credentials

Выпустить API-ключ

READY

Создаёт ключ с заданными scopes и показывает секрет ровно один раз.

Authorization: Bearer loy_live_…credentials:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCreateCredentialRequest
Response modelsIssuedCredentialResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/api-credentials/{credential_id}/rotate

Ротировать API-ключ

READY

Отзывает старый credential и однократно возвращает новый секрет.

Authorization: Bearer loy_live_…credentials:write
Контракт запроса и ответа
Параметры
  • credential_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsIssuedCredentialResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/card-types

Получить типы карт

READY

Возвращает tenant-scoped уровни программы и их активные неизменяемые версии экономики, сроков и защитных лимитов.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsCardTypeListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/card-types

Создать тип карты

READY

Создаёт новый ручной или накопительный уровень с собственной экономикой и лимитами; операция требует короткоживущий credential настройки политики.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCardTypeMutationRequest
Response modelsCardTypeResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/card-types/{card_type_id}

Создать новую версию типа карты

READY

Архивирует прежние правила и публикует следующую версию с optimistic concurrency через If-Match.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • card_type_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelCardTypeMutationRequest
Response modelsCardTypeResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/cashiers

Получить кассиров ЭВОТОР

READY

Возвращает безопасный каталог авторизованных пользователей касс ЭВОТОР текущей компании. PIN, телефон и ИНН пользователя ЭВОТОР не принимаются и не сохраняются.

Authorization: Bearer loy_live_…locations:read
Контракт запроса и ответа
Параметры
  • pagequery
  • pageSizequery
  • queryquery
  • X-Loyalty-Pos-Keyheader
Response modelsCashierListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/catalog-syncs

Полностью синхронизировать каталог точки ЭВОТОР

READY

Атомарно сверяет полный снимок товаров одной зарегистрированной точки ЭВОТОР: обновляет переданные позиции и удаляет отсутствующие. Требует Idempotency-Key; пустой снимок принимается только с явным allowEmpty=true.

Authorization: Bearer loy_live_…products:write
Контракт запроса и ответа
Параметры
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelCatalogSyncRequest
Response modelsCatalogSyncResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/checkout-sessions

Открыть кассовую сессию

READY

Создаёт идемпотентный checkout для чека ЭВОТОР и выбранного клиента.

Authorization: Bearer loy_live_…checkout:write
Контракт запроса и ответа
Параметры
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelCreateCheckoutSessionRequest
Response modelsCheckoutSessionResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/checkout-sessions/{checkout_session_id}/commit

Закрыть продажу

READY

Фиксирует продажу, списание и начисление бонусов по подтверждённому чеку ЭВОТОР.

Authorization: Bearer loy_live_…checkout:write
Контракт запроса и ответа
Параметры
  • checkout_session_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelCommitSaleRequest
Response modelsSaleResponseHTTPValidationError
Открыть поля и ограничения модели →
DELETE/v1/checkout-sessions/{checkout_session_id}/hold

Освободить резерв

READY

Снимает hold бонусов при отмене оплаты; разрешён также для безопасного завершения после остановки подписки.

Authorization: Bearer loy_live_…checkout:write
Контракт запроса и ответа
Параметры
  • checkout_session_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelReleaseHoldRequest
Response modelsHoldResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/checkout-sessions/{checkout_session_id}/hold

Зарезервировать бонусы

READY

Ставит рассчитанную сумму списания в hold до закрытия чека.

Authorization: Bearer loy_live_…checkout:write
Контракт запроса и ответа
Параметры
  • checkout_session_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelCreateHoldRequest
Response modelsHoldResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/checkout-sessions/{checkout_session_id}/quote

Рассчитать чек

READY

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

Authorization: Bearer loy_live_…checkout:write
Контракт запроса и ответа
Параметры
  • checkout_session_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelCreateQuoteRequest
Response modelsQuoteResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/company

Получить компанию

READY

Возвращает реквизиты компании текущего tenant.

Authorization: Bearer loy_live_…company:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsCompanyResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/consent-documents

Получить документы согласий

READY

Возвращает версии юридических текстов согласий.

Authorization: Bearer loy_live_…consents:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsConsentDocumentListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/consent-documents

Создать документ согласия

READY

Публикует новую неизменяемую версию текста согласия.

Authorization: Bearer loy_live_…consents:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCreateConsentDocumentRequest
Response modelsConsentDocumentResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/coupon-campaigns

Получить купонные кампании

READY

Возвращает tenant-scoped список кампаний одноразовых промокодов без раскрытия исходных значений кодов.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsCouponCampaignListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/coupon-campaigns

Создать купонную кампанию

READY

Создаёт версионную кампанию фиксированной или процентной скидки с периодом действия и лимитами использования.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCouponCampaignMutationRequest
Response modelsCouponCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/coupon-campaigns/{campaign_id}

Изменить купонную кампанию

READY

Версионно изменяет кампанию через If-Match и сохраняет изменение в append-only аудите.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelCouponCampaignMutationRequest
Response modelsCouponCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/coupon-campaigns/{campaign_id}/audit-events

Получить аудит купонной кампании

READY

Возвращает append-only историю создания и изменения кампании с actor, revision и неизменяемыми before/after снимками.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsCouponCampaignAuditListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/coupon-campaigns/{campaign_id}/code-batches

Выпустить одноразовые купонные коды

READY

Идемпотентно выпускает ограниченную партию кодов и показывает исходные значения только в первом успешном ответе; endpoint защищён rate limit.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelCouponCodeBatchRequest
Response modelsCouponCodeBatchResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/coupon-campaigns/{campaign_id}/codes

Получить реестр купонных кодов

READY

Возвращает только идентификаторы, маски, состояние и статистику использования кодов; исходные секретные значения повторно не выдаются.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsCouponCodeListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/coupon-codes/{code_id}/revoke

Отозвать купонный код

READY

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

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • code_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelRevokeCouponCodeRequest
Response modelsCouponCodeResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/customers

Получить список клиентов

READY

Возвращает страницу клиентов с поиском и фильтром по доступному балансу.

Authorization: Bearer loy_live_…customers:read
Контракт запроса и ответа
Параметры
  • queryquery
  • minimumAvailablequery
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsCustomerDirectoryResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/customers

Создать клиента

READY

Регистрирует клиента по российскому номеру телефона и создаёт бонусный счёт.

Authorization: Bearer loy_live_…customers:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCreateCustomerRequest
Response modelsCustomerResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/customers/search

Найти клиента по телефону

READY

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

Authorization: Bearer loy_live_…customers:read
Контракт запроса и ответа
Параметры
  • phonequery · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsCustomerResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/customers/{customer_id}/card-type-assignment

Получить уровень клиента

READY

Возвращает текущее назначение типа карты, его источник, revision и подтверждённый накопленный оборот.

Authorization: Bearer loy_live_…customers:read
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsCustomerCardTypeAssignmentResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/customers/{customer_id}/card-type-assignment

Назначить уровень клиенту

READY

Версионно назначает тип карты и журналирует ручное изменение без пересчёта старых чеков.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelCustomerCardTypeAssignmentRequest
Response modelsCustomerCardTypeAssignmentResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/customers/{customer_id}/consents

Получить согласия клиента

READY

Возвращает аудит согласий конкретного клиента.

Authorization: Bearer loy_live_…consents:read
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsConsentListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/customers/{customer_id}/consents

Зафиксировать согласие клиента

READY

Записывает доказательство согласия после подходящего подтверждённого challenge.

Authorization: Bearer loy_live_…consents:write
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelRecordConsentRequest
Response modelsConsentEvidenceResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/customers/{customer_id}/membership-card

Выпустить карту лояльности

READY

Создаёт или возвращает карту клиента с QR и короткоживущими ссылками Wallet.

Authorization: Bearer loy_live_…cards:write
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsMembershipCardResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/customers/{customer_id}/reward-account

Получить бонусный счёт

READY

Возвращает доступные, ожидающие и зарезервированные бонусы клиента.

Authorization: Bearer loy_live_…customers:read
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsRewardAccountResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/customers/{customer_id}/reward-activities

Получить историю бонусов

READY

Возвращает страницу операций бонусного ledger конкретного клиента.

Authorization: Bearer loy_live_…customers:read
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsRewardActivityPageResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/customers/{customer_id}/reward-adjustments

Изменить баланс бонусов

READY

Идемпотентно начисляет или списывает бонусы с обязательным основанием операции.

Authorization: Bearer loy_live_…ledger:write
Контракт запроса и ответа
Параметры
  • customer_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelRewardAdjustmentRequest
Response modelsRewardAdjustmentResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/membership-cards/resolve

Распознать карту

READY

Находит действующую карту, клиента и баланс по QR/штрихкоду.

Authorization: Bearer loy_live_…cards:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelResolveCardRequest
Response modelsResolvedCardResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/membership-cards/{card_id}/rotate

Перевыпустить карту

READY

Меняет секрет QR и инвалидирует старое значение.

Authorization: Bearer loy_live_…cards:write
Контракт запроса и ответа
Параметры
  • card_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsMembershipCardResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/nth-purchase-campaigns

Получить акции по номеру покупки

READY

Возвращает tenant-scoped разовые правила для точного порядкового номера покупки, включая расписание, товары, исключения, точки и типы карт.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsNthPurchaseCampaignListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/nth-purchase-campaigns

Создать акцию по номеру покупки

READY

Создаёт разовую процентную скидку на точную lifetime-покупку; scope поддерживает включения и исключения товаров, метки, точки и типы карт.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelNthPurchaseCampaignMutationRequest
Response modelsNthPurchaseCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/nth-purchase-campaigns/{campaign_id}

Изменить акцию по номеру покупки

READY

Версионно изменяет правило через If-Match; checkout сериализует порядковые номера и сохраняет применённую ревизию в quote.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelNthPurchaseCampaignMutationRequest
Response modelsNthPurchaseCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/nth-purchase-campaigns/{campaign_id}/audit-events

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

READY

Возвращает append-only историю конфигурации с actor, revision и неизменяемыми before/after снимками.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsNthPurchaseCampaignAuditListResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/nth-unit-campaigns

Получить количественные акции

READY

Возвращает tenant-scoped правила вида «каждый N-й товар»: цикл, число льготных единиц, выгоду, расписание и товарные области.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsNthUnitCampaignListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/nth-unit-campaigns

Создать количественную акцию

READY

Создаёт правило «1+1=3 / каждый N-й»: бесплатная единица, процентная скидка или фиксированная цена с расписанием и областью товаров, меток и точек.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelNthUnitCampaignMutationRequest
Response modelsNthUnitCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/nth-unit-campaigns/{campaign_id}

Изменить количественную акцию

READY

Версионно изменяет правило через If-Match; checkout выбирает кампанию детерминированно и сохраняет механику, ревизию и денежный результат в quote.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelNthUnitCampaignMutationRequest
Response modelsNthUnitCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/nth-unit-campaigns/{campaign_id}/audit-events

Получить аудит количественной акции

READY

Возвращает append-only историю конфигурации акции с actor, revision и неизменяемыми before/after снимками.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsNthUnitCampaignAuditListResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/place-directory

Получить публичный каталог точек

READY

Возвращает активные города и только явно опубликованные в MINIAPP торговые точки текущей компании.

Authorization: Bearer loy_live_…locations:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsPlaceDirectoryResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/policies

Получить версии правил

READY

Возвращает историю и черновики правил программы.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsPolicyListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/policies

Создать версию правил

READY

Создаёт новый неизменяемый черновик бонусной политики.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCreatePolicyRequest
Response modelsPolicyResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/policies/current

Получить активные правила

READY

Возвращает применяемую сейчас версию правил начисления, списания и сроков бонусов.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsPolicyResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/policies/{policy_id}/activate

Активировать правила

READY

Делает выбранную версию правил текущей для новых расчётов.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • policy_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsPolicyResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/product-exclusion-campaigns

Получить товарные исключения

READY

Возвращает tenant-scoped наборы товаров, групп и меток с областью действия: пустой storeIds означает все торговые точки.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsProductExclusionCampaignListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/product-exclusion-campaigns

Создать товарное исключение

READY

Создаёт набор импортированных товаров, групп и/или productLabels глобально либо для выбранных storeIds; группа охватывает потомков по pid, метка — товары из любых веток.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelProductExclusionCampaignMutationRequest
Response modelsProductExclusionCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/product-exclusion-campaigns/{campaign_id}

Изменить товарное исключение

READY

Версионно изменяет набор через If-Match: отсутствие storeIds сохраняет область, явный [] включает все точки; checkout доверяет только terminal credential.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelProductExclusionCampaignMutationRequest
Response modelsProductExclusionCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/product-exclusion-campaigns/{campaign_id}/audit-events

Получить аудит товарного исключения

READY

Возвращает append-only историю создания и изменения набора с actor, revision и неизменяемыми before/after снимками.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsProductExclusionCampaignAuditListResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/program

Получить программу лояльности

READY

Возвращает основную конфигурацию программы текущей компании.

Authorization: Bearer loy_live_…program:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsProgramResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/referral-program

Получить условия реферальной программы

READY

Возвращает активность, уровни, формулы, срок наград и revision настроек; денежные условия изменяются только в защищённом кабинете владельца.

Authorization: Bearer loy_live_…program:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsReferralProgramResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/referrals

Получить реферальные приглашения

READY

Возвращает tenant-scoped страницу персональных приглашений и число подтверждённых регистраций без раскрытия телефона клиента.

Authorization: Bearer loy_live_…customers:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsReferralInvitePageResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/referrals

Выпустить реферальное приглашение

READY

Создаёт или повторно возвращает подписанную персональную ссылку активного клиента для выбранной активной ссылки регистрации.

Authorization: Bearer loy_live_…customers:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelReferralInviteCreateRequest
Response modelsReferralInviteResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/referrals/{invite_id}/revoke

Отозвать реферальное приглашение

READY

Отзывает активное приглашение по If-Match, сохраняя историю регистраций и уже проведённых наград.

Authorization: Bearer loy_live_…customers:write
Контракт запроса и ответа
Параметры
  • invite_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Response modelsReferralInviteResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/referrals/{invite_id}/rotate

Сменить реферальную ссылку

READY

Повышает версию приглашения по If-Match и немедленно делает прежние URL и QR недействительными.

Authorization: Bearer loy_live_…customers:write
Контракт запроса и ответа
Параметры
  • invite_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Response modelsReferralInviteResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/reward-accrual-campaigns

Получить акции повышенного начисления

READY

Возвращает tenant-scoped правила временного процентного кешбэка, включая расписание, активацию и срок бонусов, товары, исключения, списки клиентов, точки и типы карт.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsRewardAccrualCampaignListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/reward-accrual-campaigns

Создать акцию повышенного начисления

READY

Создаёт временный процентный кешбэк со стратегией MAXIMUM, отдельной активацией и сроком бонусов, расписанием и tenant-scoped областью товаров, списков клиентов, точек и типов карт.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelRewardAccrualCampaignMutationRequest
Response modelsRewardAccrualCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/reward-accrual-campaigns/{campaign_id}

Изменить акцию повышенного начисления

READY

Версионно изменяет правило через If-Match; checkout применяет его только когда начисление выгоднее базового, а результат и условия бонусного lot сохраняет в quote.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelRewardAccrualCampaignMutationRequest
Response modelsRewardAccrualCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/reward-accrual-campaigns/{campaign_id}/audit-events

Получить аудит акции повышенного начисления

READY

Возвращает append-only историю конфигурации с actor, revision и неизменяемыми before/after снимками.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsRewardAccrualCampaignAuditListResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/sales/by-external-receipt/{external_receipt_id}

Найти продажу по чеку ЭВОТОР

READY

Возвращает зафиксированную продажу по внешнему идентификатору чека.

Authorization: Bearer loy_live_…checkout:write
Контракт запроса и ответа
Параметры
  • external_receipt_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsSaleLookupResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/sales/{sale_id}/returns

Оформить возврат

READY

Идемпотентно возвращает строки продажи и компенсирует бонусные операции.

Authorization: Bearer loy_live_…checkout:write
Контракт запроса и ответа
Параметры
  • sale_idpath · обязательный
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelCreateReturnRequest
Response modelsReturnResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/scheduled-discount-campaigns

Получить акции по расписанию

READY

Возвращает tenant-scoped скидочные акции, их локальное расписание, приоритет и области товаров, меток и торговых точек.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsScheduledDiscountCampaignListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/scheduled-discount-campaigns

Создать скидочную акцию по расписанию

READY

Создаёт серверное правило скидки для счастливых часов: дни недели, локальный интервал, период дат, товары/группы/метки и точки; пустая товарная область означает весь чек.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelScheduledDiscountCampaignMutationRequest
Response modelsScheduledDiscountCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/v1/scheduled-discount-campaigns/{campaign_id}

Изменить скидочную акцию по расписанию

READY

Версионно изменяет акцию через If-Match; checkout не суммирует акции, выбирает приоритетную и сохраняет неизменяемый снимок на строке quote.

Authorization: Bearer loy_live_…policies:write
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • If-Matchheader
  • X-Loyalty-Pos-Keyheader
Request modelScheduledDiscountCampaignMutationRequest
Response modelsScheduledDiscountCampaignResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/scheduled-discount-campaigns/{campaign_id}/audit-events

Получить аудит акции по расписанию

READY

Возвращает append-only историю конфигурации акции с actor, revision и before/after снимками.

Authorization: Bearer loy_live_…policies:read
Контракт запроса и ответа
Параметры
  • campaign_idpath · обязательный
  • offsetquery
  • limitquery
  • X-Loyalty-Pos-Keyheader
Response modelsScheduledDiscountCampaignAuditListResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/stores

Получить торговые точки

READY

Возвращает страницу точек текущей компании.

Authorization: Bearer loy_live_…locations:read
Контракт запроса и ответа
Параметры
  • pagequery
  • pageSizequery
  • X-Loyalty-Pos-Keyheader
Response modelsStoreListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/stores

Создать торговую точку

READY

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

Authorization: Bearer loy_live_…locations:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCreateStoreRequest
Response modelsStoreResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/subscription

Получить подписку

READY

Возвращает тариф, лимит касс, статус и сроки доступа к API.

Authorization: Bearer loy_live_…subscription:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsSubscriptionResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/terminals

Получить кассы

READY

Возвращает страницу терминалов с фильтром по точке.

Authorization: Bearer loy_live_…locations:read
Контракт запроса и ответа
Параметры
  • pagequery
  • pageSizequery
  • storeIdquery
  • X-Loyalty-Pos-Keyheader
Response modelsTerminalListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/terminals

Зарегистрировать кассу ЭВОТОР

READY

Привязывает терминал ЭВОТОР к торговой точке в пределах тарифного лимита.

Authorization: Bearer loy_live_…locations:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCreateTerminalRequest
Response modelsTerminalResponseHTTPValidationError
Открыть поля и ограничения модели →
PATCH/v1/terminals/{terminal_id}

Изменить кассу

READY

Обновляет название, состояние или привязку терминала.

Authorization: Bearer loy_live_…locations:write
Контракт запроса и ответа
Параметры
  • terminal_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelUpdateTerminalRequest
Response modelsTerminalResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/verifications

Запросить код подтверждения

READY

Создаёт ограниченный по времени OTP challenge и отправляет код через настроенный SMS или Telegram-канал.

Authorization: Bearer loy_live_…consents:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelRequestVerificationRequest
Response modelsVerificationResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/verifications/telegram-contact

Подтвердить контакт Telegram

READY

Создаёт подтверждённый enrollment challenge только для доверенного Mini App bot после self-contact Telegram.

Authorization: Bearer loy_live_…telegram:verify
Контракт запроса и ответа
Параметры
  • Idempotency-Keyheader · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelTrustedTelegramContactRequest
Response modelsVerificationResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/verifications/{challenge_id}/confirm

Подтвердить код

READY

Проверяет OTP, срок и число попыток; только после успеха разрешается защищённое действие.

Authorization: Bearer loy_live_…consents:write
Контракт запроса и ответа
Параметры
  • challenge_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Request modelConfirmVerificationRequest
Response modelsVerificationResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/v1/webhook-endpoints

Получить webhook-подписки

READY

Возвращает активные исходящие webhook endpoints.

Authorization: Bearer loy_live_…webhooks:read
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Response modelsWebhookListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/v1/webhook-endpoints

Создать webhook-подписку

READY

Регистрирует HTTPS endpoint, события и однократно возвращает HMAC-секрет.

Authorization: Bearer loy_live_…webhooks:write
Контракт запроса и ответа
Параметры
  • X-Loyalty-Pos-Keyheader
Request modelCreateWebhookRequest
Response modelsIssuedWebhookResponseHTTPValidationError
Открыть поля и ограничения модели →
DELETE/v1/webhook-endpoints/{endpoint_id}

Отключить webhook

READY

Деактивирует исходящую webhook-подписку.

Authorization: Bearer loy_live_…webhooks:write
Контракт запроса и ответа
Параметры
  • endpoint_idpath · обязательный
  • X-Loyalty-Pos-Keyheader
Response modelsWebhookEndpointResponseHTTPValidationError
Открыть поля и ограничения модели →

BonusPlus compatibility

40
GET/compat/bonusplus/account

Получить аккаунт

PARTIAL

Возвращает компанию, программу, подписку и цены каналов.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Response modelsBonusPlusAccountResponse
Открыть поля и ограничения модели →
GET/compat/bonusplus/account/filter

Получить справочники

PARTIAL

Возвращает магазины, пол, типы операций и параметры программы.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Response modelsBonusPlusFilterDataResponse
Открыть поля и ограничения модели →
POST/compat/bonusplus/certificate

Создать сертификат

READY

Выпускает подарочный сертификат с номиналом, остатком и сроком.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusCreateCertificateRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/certificate/number

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

READY

Генерирует свободный EAN-13 для нового сертификата.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Response modelsBonusPlusCertificateNumberResponse
Открыть поля и ограничения модели →
DELETE/compat/bonusplus/certificate/{certificate_id}

Удалить сертификат

READY

Безопасно архивирует сертификат текущей компании.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • certificate_idpath · обязательный
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/certificate/{certificate_id}

Получить сертификат

READY

Возвращает состояние, номинал, остаток и срок сертификата.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • certificate_idpath · обязательный
Response modelsBonusPlusCertificateResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/customer

Найти клиента

PARTIAL

Ищет клиента по GUID, карте/EAN или телефону.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • idquery
  • eanquery
  • phonequery
Response modelsBonusPlusCustomerResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/customer

Создать клиента

PARTIAL

Создаёт анкету, карту и бонусный счёт клиента.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusCreateCustomerRequest
Response modelsBonusPlusCustomerResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/compat/bonusplus/customer/{phone_number}

Заменить данные клиента

PARTIAL

Заменяет поддерживаемые поля анкеты клиента.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
Request modelBonusPlusPutCustomerRequest
Response modelsBonusPlusCustomerResponseHTTPValidationError
Открыть поля и ограничения модели →
PATCH/compat/bonusplus/customer/{phone_number}

Изменить данные клиента

PARTIAL

Частично обновляет анкету, телефон или карту.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
Request modelBonusPlusPatchCustomerRequest
Response modelsBonusPlusCustomerResponseHTTPValidationError
Открыть поля и ограничения модели →
DELETE/compat/bonusplus/customer/{phone_number}

Удалить клиента

READY

Архивирует клиента и создаёт событие удаления.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
PUT/compat/bonusplus/customer/{phone}/sendCode

Отправить код по телефону

READY

Создаёт OTP для указанного телефона через SMS-провайдера.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phonepath · обязательный
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
PUT/compat/bonusplus/customer/sendCode

Отправить код из тела

READY

Создаёт OTP для телефона из JSON-тела.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusSendCodeRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
PUT/compat/bonusplus/customer/{phone_number}/checkCode/{code}

Проверить код

READY

Проверяет срок, попытки и подтверждает номер клиента.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
  • codepath · обязательный
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/customer/list

Получить список клиентов

PARTIAL

Возвращает страницу Customer DTO; сложные CRM/RFM-фильтры реализованы не полностью.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusCustomerListRequest
Response modelsarray<BonusPlusCustomerResponse>HTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/customer/{phone_number}/sendMessage

Отправить сообщение

PARTIAL

Ставит поддерживаемое сообщение в outbox; требуется реальный провайдер канала.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
Request modelBonusPlusSendMessageRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/customer/search

Искать клиентов

PARTIAL

Ищет до десяти клиентов по телефону или ФИО.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusCustomerSearchRequest
Response modelsarray<BonusPlusDictionaryItemResponse>HTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/customer/stat

Получить статистику клиентов

READY

Возвращает агрегаты по полу, подтверждению, promo opt-out и e-card.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Response modelsBonusPlusCustomerStatsResponse
Открыть поля и ограничения модели →
PATCH/compat/bonusplus/customer/{phone_number}/balance

Изменить баланс

PARTIAL

Начисляет или списывает бонусы с партиями и сроками.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
  • Idempotency-Keyheader · обязательный
Request modelBonusPlusBalancePatchRequest
Response modelsBonusPlusBalancePatchResponseHTTPValidationError
Открыть поля и ограничения модели →
PATCH/compat/bonusplus/customer/{phone_number}/balance/reserve

Зарезервировать бонусы

READY

Создаёт или частично освобождает идемпотентный резерв.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
  • Idempotency-Keyheader · обязательный
Request modelBonusPlusReserveRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
DELETE/compat/bonusplus/customer/balance/reserve

Отменить резерв

READY

Полностью освобождает бонусный резерв.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusCancelReserveRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/customer/{phone_number}/balance/reserve/{external_id}

Получить резерв

READY

Возвращает состояние и сумму резерва.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
  • external_idpath · обязательный
Response modelsBonusPlusReserveResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/customer/login

Войти как клиент

READY

Проверяет телефон и scrypt-пароль с нейтральной ошибкой credentials.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusCustomerLoginRequest
Response modelsBonusPlusCustomerResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/customer/{phone}/setPassword

Сбросить пароль

READY

Генерирует пароль с rate limit и отправляет через настроенный SMS-канал.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phonepath · обязательный
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/ecard/{phone_number}/{valid_minutes}

Получить e-card

PARTIAL

Возвращает временную подписанную ссылку на QR-карту клиента.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • phone_numberpath · обязательный
  • valid_minutespath · обязательный
Response modelsBonusPlusEcardLinkResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/compat/bonusplus/retail/calc

Рассчитать продажу

PARTIAL

Рассчитывает скидки, списание и начисление по строкам чека.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • Idempotency-Keyheader · обязательный
Request modelBonusPlusRetailCalcRequest
Response modelsBonusPlusRetailCalcResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/retail

Провести продажу

PARTIAL

Идемпотентно выполняет quote, hold и commit; сохраняет неизменяемый снимок даты, кассового контекста, тегов, купонов и товарных полей.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • Idempotency-Keyheader · обязательный
Request modelBonusPlusRetailRequest
Response modelsBonusPlusRetailResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/compat/bonusplus/retail/back

Провести возврат

PARTIAL

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

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • Idempotency-Keyheader · обязательный
Request modelBonusPlusRetailBackRequest
Response modelsBonusPlusRetailBackResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/retail/transactions

Получить продажи и возвраты

PARTIAL

Возвращает единый пагинированный поток строк продаж и возвратов с устойчивыми operation/position ID, датами, рублёвыми и бонусными суммами, историческим кассовым контекстом и tenant-safe фильтрами.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusTransactionFilterRequest
Response modelsBonusPlusTransactionListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/retail/bonusActivities

Получить бонусные операции

PARTIAL

Возвращает операции бонусного ledger с устойчивыми person/purchase/store/cashier ID, историческим контекстом чека и карты, пагинацией и фильтрами phone, PersonsId, cardNumber, transactionType, creationDate и validUntil.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusActivityFilterRequest
Response modelsBonusPlusActivityListResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/retail/{legacy_id}

Получить продажу или возврат

PARTIAL

Возвращает продажу type=0 либо возврат type=1 с parentId исходного чека, кассовым контекстом и неизменяемыми товарными позициями.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • legacy_idpath · обязательный
Response modelsBonusPlusSaleResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/messaging/price

Рассчитать цену сообщений

READY

Считает GSM-7/UCS-2 сегменты и цену SMS/PUSH/EMAIL.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusMessagePriceRequest
Response modelsBonusPlusMessagePriceResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/product/list

Получить товары

PARTIAL

Возвращает страницу товарного каталога.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusProductFilterRequest
Response modelsBonusPlusProductListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/product/search

Искать товары

PARTIAL

Выполняет Unicode-регистронезависимый поиск по каталогу.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusProductSearchRequest
Response modelsBonusPlusProductListResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/product/import

Импортировать товары

PARTIAL

Массово обновляет или создаёт до 10 000 товаров.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusProductImportRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
GET/compat/bonusplus/webhook/subscriptions

Получить webhook-подписки

PARTIAL

Возвращает активные совместимые подписки.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Response modelsarray<BonusPlusWebhookResponse>
Открыть поля и ограничения модели →
GET/compat/bonusplus/webhook/subscription/{subscription_id}

Получить webhook-подписку

PARTIAL

Возвращает подписку текущей компании по ID.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • subscription_idpath · обязательный
Response modelsBonusPlusWebhookResponseHTTPValidationError
Открыть поля и ограничения модели →
DELETE/compat/bonusplus/webhook/subscription/{subscription_id}

Удалить webhook-подписку

PARTIAL

Деактивирует совместимую подписку.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Параметры
  • subscription_idpath · обязательный
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
POST/compat/bonusplus/webhook/subscription

Создать webhook-подписку

PARTIAL

Регистрирует HTTPS webhook с HMAC, retry и dead-letter доставкой.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusWebhookCreateRequest
Response modelsBonusPlusWebhookResponseHTTPValidationError
Открыть поля и ограничения модели →
PUT/compat/bonusplus/retail/giftCard

Найти сертификат для оплаты

READY

Разрешает отдельно документированный BonusPlus gift-card tender по отсканированному номеру внутри текущей компании.

Authorization: ApiKey …без scope
Контракт запроса и ответа
Request modelBonusPlusGiftCardLookupRequest
Response modelsBonusPlusCertificateResponseHTTPValidationError
Открыть поля и ограничения модели →

Публичная регистрация и карты

16
GET/public/v1/ecards/{download_token}

Открыть электронную карту

READY

По короткоживущему подписанному токену возвращает QR, баланс и геометки без API-ключа.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • download_tokenpath · обязательный
Response modelsPublicEcardResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/feedback/{token}

Открыть форму отзыва

READY

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

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • tokenpath · обязательный
Response modelsPublicFeedbackContextResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/public/v1/feedback/{token}

Отправить отзыв и NPS

READY

Однократно сохраняет рейтинг, NPS и комментарий; награда атомарно проходит через бонусный ledger и не может быть выдана повторно.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • tokenpath · обязательный
Request modelPublicFeedbackSubmitRequest
Response modelsPublicFeedbackSubmitResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/feedback/{token}/operator-reply

Получить ответ компании на отзыв

READY

По исходной feedback capability до её срока действия возвращает доставленный ответ компании или явный статус ожидания без раскрытия других обращений клиента.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • tokenpath · обязательный
Response modelsPublicFeedbackOperatorReplyResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/legal-pages/{slug}

Получить юридическую страницу

READY

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

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • slugpath · обязательный
Response modelsPublicLegalPageResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/legal-pages/{slug}.pdf

Открыть юридический документ PDF

READY

Отдаёт PDF последней утверждённой и уже действующей версии как application/pdf с проверяемым SHA-256; для текстовой версии и неопубликованной страницы возвращается 404.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • slugpath · обязательный
Response modelsHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/plans

Получить публичный каталог тарифов ЭВОТОР

READY

Возвращает единый read-only каталог STANDARD, PROFI и PROFI_PLUS: цены на 1, 6 и 12 месяцев, стоимость дополнительной кассы и список возможностей. Оплату не запускает; тариф выдаётся вручную.

не требуетсябез scope
Контракт запроса и ответа
Response modelsPlatformPlanCatalogResponse
Открыть поля и ограничения модели →
GET/public/v1/registration/{slug}

Открыть регистрацию клиента

READY

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

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • slugpath · обязательный
  • refquery
Response modelsPublicRegistrationConfigurationResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/public/v1/registration/{slug}/enroll

Завершить регистрацию клиента

READY

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

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • slugpath · обязательный
  • X-Public-Client-IPheader
  • X-Portal-BFF-Keyheader
  • User-Agentheader
Request modelPublicRegistrationEnrollRequest
Response modelsPublicRegistrationEnrollResponseHTTPValidationError
Открыть поля и ограничения модели →
POST/public/v1/registration/{slug}/verifications

Запросить код регистрации

READY

Нормализует российский номер телефона, применяет лимиты по компании, ссылке, номеру и клиентскому адресу и отправляет одноразовый SMS-код; клиент до подтверждения не создаётся.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • slugpath · обязательный
  • X-Public-Client-IPheader
  • X-Portal-BFF-Keyheader
Request modelPublicRegistrationVerificationRequest
Response modelsPublicRegistrationVerificationResponseHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/wallet/apple/v1/devices/{device_library_identifier}/registrations/{pass_type_identifier}

Получить изменившиеся Apple Wallet passes

READY

Служебный PassKit endpoint: возвращает зарегистрированные serial numbers, изменившиеся после переданного монотонного update tag.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • device_library_identifierpath · обязательный
  • pass_type_identifierpath · обязательный
  • passesUpdatedSincequery
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
DELETE/public/v1/wallet/apple/v1/devices/{device_library_identifier}/registrations/{pass_type_identifier}/{serial_number}

Отменить регистрацию Apple Wallet pass

READY

Служебный PassKit endpoint: после проверки ApplePass-токена удаляет связь устройства с картой.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • device_library_identifierpath · обязательный
  • pass_type_identifierpath · обязательный
  • serial_numberpath · обязательный
  • authorizationheader
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
POST/public/v1/wallet/apple/v1/devices/{device_library_identifier}/registrations/{pass_type_identifier}/{serial_number}

Зарегистрировать Apple Wallet pass

READY

Служебный PassKit endpoint: проверяет ApplePass-токен, шифрует APNs push token и регистрирует устройство для обновлений карты.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • device_library_identifierpath · обязательный
  • pass_type_identifierpath · обязательный
  • serial_numberpath · обязательный
  • authorizationheader
Request modelApplePushTokenRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
POST/public/v1/wallet/apple/v1/log

Принять диагностическое сообщение Apple Wallet

READY

Служебный PassKit endpoint: валидирует ограниченный пакет диагностических строк без сохранения пользовательского содержимого.

не требуетсябез scope
Контракт запроса и ответа
Request modelAppleLogEntriesRequest
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/wallet/apple/v1/passes/{pass_type_identifier}/{serial_number}

Получить обновлённый Apple Wallet pass

READY

Служебный PassKit endpoint: после проверки стабильного ApplePass-токена возвращает заново подписанный pass с актуальным QR и балансом.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • pass_type_identifierpath · обязательный
  • serial_numberpath · обязательный
  • authorizationheader
  • if-modified-sinceheader
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →
GET/public/v1/wallet/apple/{download_token}

Скачать Apple Wallet pass

READY

По короткоживущему токену возвращает подписанный .pkpass; требует настроенного Apple issuer.

не требуетсябез scope
Контракт запроса и ответа
Параметры
  • download_tokenpath · обязательный
Response modelsobjectHTTPValidationError
Открыть поля и ограничения модели →