What's new at Zeal
Everything we've shipped across the Communicator SDK, ECR SDK, and Acquirer API. Subscribe via RSS or follow @zealdev for live updates.
Acquirer API is generally available
The Zeal Acquirer API is now GA. Distributors and payment providers can manage their
full estate of branches and terminals over a single REST surface, authenticated via
the API-KEY header.
- Merchant lifecycle: create, list, fetch, archive.
- Terminal lifecycle: create, list, update, reassign, archive, restore, delete.
- Lookup endpoints for payment providers, distributors, acquirers, and payment apps.
Refund and reverse actions are now first-class
flowHandler.refund() and flowHandler.reverse() are now exposed in FlowHandler
with dedicated request/response models — no more wrapping BaseResponse by hand.
RefundTransactionRequestaccepts an optionaltransaction_idto link standalone refunds to a sale.MarkAsReverseRequesttakes an optional reversal payment reference.
ECR SDK 1.0.4 — coroutine-first transaction surface
The ECR SDK ships a single object — ZealSDK — exposing initialize,
listTerminals, syncCatalog, startTrx, and showDialogs as suspending Kotlin
functions.
- Real-time transaction state via Pusher;
startTrxreturns a typedTrxResponsewhen the terminal completes. - 60-second hard timeout — surfaced as
TimeoutException. - Built-in dialogs for processing / success / decline.
DigitalReceipt now returns a payment_reference
DigitalReceiptResponse now carries a payment_reference string so downstream
MarkAsReverse calls can link cleanly to the original sale.
NotRegisteredFlowException for unregistered receivers
When the target application has not registered a manifest receiver for an action,
subscribe now surfaces NotRegisteredFlowException instead of a generic timeout
— letting your payment app fall back gracefully.
Kotlin DSL Gradle support + faster broadcast routing
- Added
build.gradle.ktsinstall instructions. - Broadcast routing latency between the payment app and Zeal is now ~40% lower on supported terminals.
- Fixed a race where
afterCardDetectedcould fire twice for chip + contactless fallback.
Communicator SDK 1.2 — typed responses everywhere
All seven flow actions now have dedicated request and response classes that extend
BaseResponse. The legacy untyped return from FlowHandler is removed — see the
API reference for every model.