pos-payment-external-sdk

Внешний SDK для интеграции кассового/клиентского ПО с приложением pos-payment-app через Intent и AIDL.

Совместимость с pos-payment-app

Рекомендуется использовать связку из одной строки.

pos-payment-apppos-payment-external-sdk
3.9.0 – 3.9.61.9.3
3.7.5 – 3.8.81.9.0 – 1.9.3
3.7.1 – 3.7.41.8.1
3.7.01.8.0
3.5.7 – 3.6.11.8.0
3.5.0 – 3.5.71.7.0 – 1.8.0

Changelog

1.9.3 — 2026-09-17 … 2026-11-01

  • Ошибка отсутствия бумаги. В SdkExceptionType / POSException добавлен OutOfPaperException — приходит в PurchaseResult.Error.exceptionType, если на принтере закончилась бумага.

  • Доступность эквайрингового хоста. В AcquiringException добавлен HostNotAvailableException.

  • Доработки stopTransaction (корректное завершение активной операции).

1.9.2 — 2026-09-17

  • Исправление сценария repeat: разбор и обработка ошибок вроде CardEntryMethodRepeatRequiredException / CardEntryMethodChangeRequiredException в потоке PurchaseResult, чтобы внешний клиент мог корректно повторить ввод карты.

1.9.1 — 2026-09-16

  • Исправление stopTransaction: таймауты и корректное завершение, когда операция ещё не дошла до финального callback.

1.9.0 — 2026-09-16

  • Добавилась функция для получения SN терминала: getTerminalInfo

  • Таймаут поиска карты. У purchase, cancel, cancelWithoutCard, fiscalPurchase и fiscalCancel появился опциональный timeout: Int? = null. в секундах. Kotlin-вызовы purchase(...) без timeout остаются source-compatible за счёт $default. Java-клиенты - нет.

  • AuthStatus. Статус авторизации теперь несёт банковские реквизиты. Добавлены опциональные параметры в ответе: bankTerminalID — String? - банковский id терминала, merchantID — String? - id мерчанта, bankAndMerchantName — String? - имя банка и мерчанта.

  • Добавлена классификация ошибок в PurchaseResult: val exceptionType: SdkExceptionType? = null в Error

1.8.1 — 2026-08-11 … 2026-09-16

  • AIDL bind переведён на appContext — меньше гонок при уничтожении Activity во время операции.

  • Внутренние правки устойчивости пути покупки к exceptional-ошибкам (подготовка к exceptionType в 1.9.0).

  • Реорганизация пакетов, обновление Kotlin / AGP; проверка совместимости minSdk. На сигнатуры публичных методов почти не влияет.

1.8.0 — 2026-03-30 … 2026-08-11

  • Стабилизация AIDL executor и сборки модуля (убраны лишние зависимости).

  • Фиксы внешнего SDK без изменения контракта методов.

1.7.0 — 2026-01-28

  • Частичная отмена без карты. У cancelWithoutCard появился обязательный amount: String (раньше был только rrn: String). Сигнатура: cancelWithoutCard(amount: String, rrn: String). Вызовы только с rrn больше не скомпилируются — breaking change.

1.6.0 — 2025-12-23

  • Статус фискализации. В PosPaymentSdkFiscalManager добавлен getFiscalStatus(): Result<SdkSuccessAnswer.GetFiscalStatus>. В ответе — FiscalStatus (isFiscalized, shiftStatus, номера ККТ/ФН, кассир, ИНН и т.д.).

1.5.0 — 2025-12-18

  • Ручная отправка offline-операции: postOfflineOperation(invoice: String): Result<SdkSuccessAnswer.PostOfflineOperation> (стабилизация API вместе с очередью).

  • Фикс под Kozen (сборка/рантайм вендора).

1.4.0 — 2025-12-12

  • Удаление из offline-очереди: deleteFromOfflineQueue(invoice: String) (PosSdkActionExecutor.deleteFromOfflineQueue).

1.3.0 — 2025-12-10

  • В FiscalNode.supplier поправлен TIN поставщика.

  • Расширены ставки НДС в фискальных нодах (в т.ч. новые значения: 22%, 22/122 и др. в поле taxes).

1.2.0 — 2025-12-05

  • В фискальный запрос/FiscalDataRequest добавлены параметры приложения для чека (кассир, покупатель, payments и связанные поля).

1.1.0 — 2025-11-18 … 2025-12-05

  • Фискальная покупка/отмена через PosSdkActionExecutor: purchase(request: PosRequest, …) и cancel(request: PosRequest, rrn: String, …) с результатом FiscalPurchaseResult.

  • Отмена без карты: cancelWithoutCard(rrn: String).

  • Чёрный список offline: getOfflineBlackList(), deleteFromBlackList(pan: String), setCheckBlackListOfflineOperation(isEnabled: Boolean), isCheckBlackListOfflineOperationEnabled().

  • Enable/disable-флаги offline сведены к единым set…(isEnabled) / is…Enabled() парам.

1.0.6 — 2025-10-13 … 2025-11-18

  • Метаданные транзакции: у purchase появился customMetaData: Map<String, String> = emptyMap().

  • Типизация offline-ошибок на пути покупки (сообщения/Result.Error для offline-сценариев).

  • Доработки black list / logout / удаления из offline.

1.0.5 — 2025-09-12

  • Фикс AIDL: при двух запросах подряд или параллельно сервис переставал отвечать — очередь/сериализация вызовов восстановлена.

1.0.4 — 2025-09-12

  • Offline-очередь:

    • getOfflineQueue(): Result<SdkSuccessAnswer.GetOfflineQueue>

    • postOfflineOperation(invoice: String)

    • setAutoOfflineOperationPosting(isEnabled: Boolean) / isAutoOfflineOperationPostingEnabled()

1.0.3 — 2025-08-21 … 2025-09-12

  • Фискальные смены и чек в PosPaymentSdkFiscalManager:

    • openShift(cashierName: String, cashierTin: String)

    • closeShift(cashierName: String, cashierTin: String)

    • processCheque(cheque: FiscalDataRequest)

  • Manifest external SDK (видимость/queries для связки с pos-payment-app).

1.0.2 — 2025-05-26 … 2025-08-21

  • wakeUp intent: перед AIDL-операцией SDK будит UI pos-payment-app (в т.ч. правки под Android 15).

  • Правки Manifest и сопутствующие фиксы.

1.0.1 — 2025-03-21

  • Прерывание текущей операции: stopTransaction(): Result<SdkSuccessAnswer.StopTransaction>.

До 1.0.1 — 2024-07-24 … 2025-03-21

Первый публичный контур SDK. Intent и AIDL.

  • Старт библиотеки + sample: login, Activity Result Launcher.

  • Платежи: purchase, cancel, getReceiptData, fetchRevise, auto batch (tryAutoBatchPreviousSession / doAutoBatch).

  • Сессия: login / logout, getAuthStatus, getCredentials, setOfflineMode / getOfflineMode.

  • Экраны: history / settings / queue / auth; Mifare.

  • Печать (PosPaymentSdkPrinterManager): printText, printBarcode, printQrcode, printBitmap, feedPaper.

  • Коды ошибок в Result.Error; выбор CommunicationType (Intent / AIDL); промежуточные состояния покупки в Flow при AIDL (InitOperation, ReaderReady, Processing).

Packages

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard