Перейти к содержанию

Требования к реализации

Pay API


Для реализации сценариев технической интеграции с Pay API, к торгово-сервисному предприятию (ТСП) и разработчикам кассового ПО предъявляются следующие технические требования.

Все требования являются обязательными, если не указана отметка «опционально».

1. Требования к реализации сценариев

Перечень сценариев, реализующих платёжные операции в сервисе Koshelek Pay, приведён на странице Обзор сценариев API.

Необходимо поддерживать:

  • прямые сценарии;
  • частные случаи прямых сценариев;
  • альтернативные сценарии;
  • обработку ошибок.

2. Требования к формированию кассового чека

:information_source: опционально

В кассовом чеке, формируемом кассой и передаваемом покупателю, рекомендуется предусмотреть блок с отображением информации об операции оплаты / возврата выполненной с использованием сервиса Koshelek Pay.

Эта информация может быть важна для покупателя в случае обращения в службу поддержки, а для кассира — при оформлении возврата.

Параметр Pay API Описание Примечание
orderId ID (номер) заказа на стороне ТСП. Общий для сценариев оплаты и возврата.
paymentTransactionId ID операции оплаты на стороне Кошелька. Уникален для сценария оплаты.
refundTransactionId ID операции возврата на стороне Кошелька. Уникален для сценария возврата.
paymentType Тип провайдера платежей (Долями / СБП). Общий для сценариев оплаты и возврата.
qrcId ID транзакции, зарегистрированный в СБП. Для paymentType = SBP
kzo Контрольное значение операции СБП. Для paymentType = SBP

3. Требования к реализации контракта API

Интеграция с сервисом Pay API должна осуществляться в соответствии с текущей наиболее свежей версией API (указана в верхней строке списка версий на странице История изменений). Ниже перечислены запросы Pay API с указанием обязательности их реализации:

Запрос Pay API Обязательность
Запрос списка возможных провайдеров платежей Опционален
Инициализация платежа Обязателен
Получение статуса транзакции Обязателен
Отправка чека Опционален
Отмена оплаты Обязателен
Возврат оплаты Обязателен

3.1 Минимальная задержка при обработке сценариев

Необходимо обеспечить минимальную задержку при обработке сценариев взаимодействия с Pay API. Время задержки между нажатием кнопки на кассе и передачей данных на сервер Кошелька не должно превышать 0,5 секунды.

Пример: сценарий оплаты

После того, как покупатель указал способ оплаты через Koshelek Pay и кассир выбрал соответствующий способ в кассовом ПО, система ТСП должна незамедлительно (в пределах 0,5 секунды) передать в Pay API данные, необходимые для оплаты.

3.2. Идемпотентность методов Pay API

Методы Pay API являются идемпотентными. Партнёру необходимо учитывать это при проектировании сервиса, взаимодействующего с Pay API. Особое внимание следует обратить на это при осуществлении возврата (см. Сценарий 3. Возврат оплаты → Альтернативные сценарии возврата и возможные ошибки).

4. Требования к дополнительным API

4.1. Store API

:information_source: опционально

Для оперативного обновления информации о точках обслуживания, поддерживающих оплату через Koshelek Pay, рекомендуется интеграция Store API.

5. Требования к обработке ошибок

5.1. Обработка кодов ошибок API

Необходимо реализовать корректную обработку ошибок Pay API. Список возможных HTTP-кодов ответов Pay API, включая ответы об ошибках, приведён на странице описания API.

5.2. Обработка ошибок с участием кассира

При обработке ошибок, требующих участия кассира, необходимо реализовать понятное отображение ошибок на экране кассового терминала, с краткой инструкцией для кассира. Рекомендации см. на странице описания API в столбце «Рекомендации кассиру».

6. Требования к реализации TOTP

6.1. Приём штрихкодов с поддержкой TOTP

Для верификации штрихкодов, поддерживающих Koshelek Pay, необходимо обеспечить приём и распознавание штрихкодов карт лояльности, содержащих не только номер карты, но и верифицирующую информацию:

  • одноразовый код сессии cardSession
  • одноразовый пароль TOTP

6.1.1. Допустимые форматы штрихкодов с поддержкой TOTP

Допускаются следующие форматы TOTP-штрихкодов:

  • code128
  • PDF417
  • DataMatrix
  • QR code

6.2. Интеграция программного модуля Koshelek TOTP

Для работы с TOTP-штрихкодами Koshelek Pay партнёру необходимо интегрировать в свою инфраструктуру программный модуль Koshelek TOTP — в соответствии с руководством на странице Модуль Koshelek TOTP.

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

Реализованная поддержка TOTP-штрихкодов должна обеспечивать обратную совместимость с картами лояльности ТСП, не поддерживающими TOTP-верификацию (до подключения к Koshelek Pay — т.е. не содержащих значения cardSession и одноразового пароля TOTP).

7. Требования к кассовым отчётам

7.1. Сохранение параметров слип-чека операции

Все параметры слип-чека выполненной операции (на уровне Pay API передаются в объекте slip) должны сохраняться в базе данных кассы.

7.2. Расширение параметров внутренней отчётности кассы

Перечисленные ниже параметры, передаваемые в рамках взаимодействия с Pay API, должны быть добавлены в кассовые отчёты:

Параметр Pay API Описание Примечание
orderId ID заказа. Общий для оплаты и возврата.
paymentTransactionId ID операции оплаты на стороне Кошелька. Уникален для сценария оплаты.
refundTransactionId ID операции возврата на стороне Кошелька. Уникален для сценария возврата.
requestId Уникальный ID запроса от кассы. Уникален для каждого запроса независимо от сценария.
paymentType Тип провайдера платежей в Koshelek Pay. Тип провайдера платежей (Долями / СБП), определяет механизм оплаты покупки.
qrcId ID транзакции , зарегистрированный в СБП. Для paymentType = SBP
kzo Контрольное значение операции СБП Для paymentType = SBP

8. Требования к конфигурациям

8.1. Конфигурация данных кассы

Для интеграции и организации информационного обмена с Pay API используется ряд идентификаторов и технологических параметров. Партнёру необходимо предусмотреть возможность оперативного изменения следующих параметров сервиса, взаимодействующего с Pay API (вынесением их в отдельный конфигурационный файл или иным способом).

Параметр информационного обмена Конфигурируемость
login Обязательно
password Обязательно
store Обязательно
API Base URL (test) Обязательно
API Base URL (production) Обязательно
terminal Опционально
paymentPurpose Опционально

8.2. Конфигурация Pay API

Для гибкого управления автоматизации запросов часть логики необходимо реализовать через конфигурируемые параметры, а именно:

  • Допустимые значения как входящих, так и исходящих параметров типа ENUM. Это позволит не дорабатывать кассовое ПО, например, в случае появления новых провайдеров платежей.
  • Автоматизация действий кассы в случае таймаутов и повторной отправки запросов. Это позволит улучшать пользовательский опыт в процессе эксплуатации.

8.2. Конфигурация TOTP

Для инициализации модуля TOTP партнёру необходимо предусмотреть возможность оперативного изменения идентификаторов и технологических параметров (см. Модуль Koshelek TOTP → Установка и конфигурирование → Конфигурирование). Все параметры обязательны.