pos-payment-external-sdk
Внешний SDK для интеграции кассового/клиентского ПО с приложением pos-payment-app через Intent и AIDL.
Совместимость с pos-payment-app
Рекомендуется использовать связку из одной строки.
| pos-payment-app | pos-payment-external-sdk |
|---|---|
3.9.0 – 3.9.6 | 1.9.3 |
3.7.5 – 3.8.8 | 1.9.0 – 1.9.3 |
3.7.1 – 3.7.4 | 1.8.1 |
3.7.0 | 1.8.0 |
3.5.7 – 3.6.1 | 1.8.0 |
3.5.0 – 3.5.7 | 1.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
wakeUpintent: перед AIDL-операцией SDK будит UIpos-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).