Back to docsChangelog
Stay up to date with the latest changes across Tapaya products.
1.13.0
Accept Android 1.13.0
ChangedFixed
Changed
- A plugin bind that fails now says why.
PluginUnavailable used to be raised behind a single
Fixed
- Every failed bind leaked a
ServiceConnection. bindService() registers the connection before - A
SecurityException from bindService() — the plugin's service not exported to the host app, - A plugin whose process died before it connected — killed, updated, or force-stopped mid-bind —
1.12.0
Accept Android 1.12.0
Added
Added
- The hosted receipt page's URL is now available from the payment flow itself, instead of only from
1.11.0
Accept Android 1.11.0
Added
Added
NfcPositionConfig.ExternalReader for setups where the antenna is on a separate reader that is
1.10.0
Accept Android 1.10.0
AddedChanged
Added
AcceptPlugin.activateTerminal() now throws NoTidsAvailableForMerchant when the merchant has- Dual-sided ("double-sided") device support:
Accept.displays (all(), customerFacing(),
Changed
PayHostActivity now declares an empty taskAffinity, so a payment always starts a fresh task- The SDK's remote diagnostics now identify the device behind a log line: device id, brand, model,
1.9.1
Accept Android 1.9.1
Fixed
Fixed
- Location fixes now fall back to the OS's last-known location when a fresh fix times out or the
1.9.0
Accept Android 1.9.0
Added
Added
AcceptPlugin.updateInfo() reports whether a newer version of the plugin app is available on
1.8.0
Accept Android 1.8.0
Added
Added
ReceiptDetails on PayResult.Success/PayResult.Declined exposes structured card-receipt
1.7.0
Accept Android 1.7.0
AddedChangedFixed
Added
- Optional
transactionTimeout (Duration) on AcceptPayments.pay() and setOptions() controls
Changed
AcceptPayments.refund() is now public (previously internal and unreachable by SDK consumers),
Fixed
- Consumer ProGuard/R8 rules:
AcceptException subtypes not ending in Exception are now kept by
1.6.0
Accept Android 1.6.0
AddedChangedFixed
Added
- Optional
tip (Long, minor units) on AcceptPayments.pay() — when set, the plugin skips its PayResult.Success.authCode exposes the processor authorization code reported by the terminal.ReceiptPrintBehavior on PaymentReceiptConfig.Show (Automatic, OnDemand, Disabled)nfcPosition payment config hint (NfcPositionConfig) tells the companion where the device's- Optional
metadata param on AcceptPayments.pay(), threaded through to the plugin and echoed
Changed
- Payment extras are no longer logged in full (
extras=...) to avoid leaking metadata values;
Fixed
- Removed dead
AcceptService/AcceptConfigProvider manifest entries.
1.5.0
Accept Android 1.5.0
AddedChanged
Added
Accept.sdk.version, Accept.sdk.isProduction, and Accept.sdk.deviceId() for diagnosticsPaymentReceiptConfig controls the receipt screen the companion shows after an *approved*
Changed
- The plugin's terminal now pre-warms in the background. Pure optimization — silent no-op until the
1.4.3
Accept Android 1.4.3
AddedChanged
Added
Accept.setLogLevel(AcceptLogLevel) for finer control over diagnostic log verbosity, with theAccept.setLogger(AcceptLogger?) to route consumer-facing SDK logs into a custom sink (Timber,
Changed
Accept.setDebugLoggingEnabled(enabled) is now shorthand for setLogLevel: true maps to
1.4.2
Accept Android 1.4.2
Changed
Changed
- The published
-sources.jar and API reference documentation now contain only the public API;
1.4.1
Accept Android 1.4.1
Fixed
Fixed
- CI: publish the API reference documentation site on release. No functional changes to the SDK from
1.4.0
Accept Android 1.4.0
AddedChanged
Added
- New
Accept entry point exposing SDK lifecycle as an observable state: StateFlow<SdkState>. AcceptAuth.authenticate(merchantToken) for merchant authentication.AcceptSdk.minimumAmounts() for merchant-configured minimum payment amounts per currency.AcceptMerchant surface: info(), config(), onboardingStatus(), availableCurrencies().AcceptPayments.pay() returning a Flow<PaymentEvent> (Creating, Created, Launched,PaymentEvent.Created — the payment token is now available as soon as the backend createsAcceptPlugin surface for the Accept terminal companion app: isInstalled(), install(),pay() now fails fast with PluginNotReadyForPayments if the plugin isn't authenticated and- Typed, sealed
AcceptException hierarchy for public failure modes (auth, plugin, location, Accept.clear() to reset locally persisted SDK state on logout.Accept.setDebugLoggingEnabled() for opt-in internal debug logging.- Location fix caching to speed up payment creation.
Changed
pay() is now Flow-based instead of Activity-for-result; results are correlated by request- Terminal activation is now a suspend function guarded against concurrent launches
- Default environment is
SANDBOX; target production explicitly via
1.3.2
Accept Android 1.3.2
Fixed
Fixed
AcceptUnknownException is now always constructed with a message, improving error reporting.- Companion-app discovery now matches only
com.tapaya.accept.* packages. - Removed a hardcoded demo token.
1.3.1
Accept Android 1.3.1
Changed
Changed
- Updated sandbox base URL to
api.sandbox.tapaya.com. - Example app rewritten to match the iOS example app flow: initialize → login (with auto-register on
1.3.0
Accept Android 1.3.0
AddedChanged
Added
- Optional
com.tapaya:accept-stripe module providing embedded Stripe Tap to Pay. The core - Companion-app management API on
Accept: isCompanionAppInstalled(), pairWithCompanionApp()
Changed
- Reduced size of Accept SDK.
- Companion app hand-off now uses an Android Intent instead of a
com.tapaya.accept:// deep link.