Recognizer SDK (2.3.0)
- Resolved an issue where
ScanResults.retailerIdcould disagree withScanResults.merchantNamewhen the merchant was identified late in the scan. The retailer id now reflects the final detected merchant, and merchant-dependent results (products, promotions, loyalty, duplicate detection, and trip/item confidence) are consistent with it. - Improved merchant detection consistency by waiting for all merchant lookups to finish before the winning merchant is selected, making repeat scans of the same receipt more deterministic.
- Resolved a
RecognizerNotInitializedExceptioncrash inRecognizerView.preliminaryResults()that could occur when a staleRecognizerViewterminated the shared recognizer session while a scan was still in flight, such as on screen re-entry. An empty preliminary result is now delivered instead of throwing, matching the existing behavior when finishing a scan. - Added
RecognizerView.initialized()so integrators can check whether a view's recognizer session is still live before callingtakePicture(),confirmPicture(),preliminaryResults()orfinishedScanning(), instead of relying on catching exceptions. RecognizerView.confirmPicture()now reports a terminated session throughCameraRecognizerCallback.onException()rather than throwing, so a capture callback that arrives after teardown no longer crashes.RecognizerView.terminate()now clears the view's scan options, so calls made on a terminated view fail consistently instead of depending on shared session state that another view instance may have already changed.- Stability fixes and improvements
Account Linking SDK (2.3.0)
- Stability fixes and improvements
Camera SDK (2.3.0)
- Stability fixes and improvements
Camera UI SDK (2.3.0)
- Stability fixes and improvements
Core SDK (2.3.0)
- Stability fixes and improvements
Digital SDK (2.3.0)
- New: Automated Scrape (
AutoScrapeClient) — keep a linked inbox producing receipts without the user reopening your app. Arm the feature once per launch and the SDK schedules a periodic background scrape for you; each run submits the user's linked accounts through the same server-side path asImapClient.remoteMessages(), and the backend parses the receipts and POSTs them to your configured client endpoint.- Two-line integration. Create an
AutoScrapeClientin yourApplicationand callbegin(success, failure)with the callbacks you want the results delivered to — the sameCredentials.Password+JobResultspair the manual remote scrape delivers. No new manifest entries, permissions, or R8/ProGuard rules; WorkManager is bundled and configured by the SDK. - Opt-in and off by default. Nothing is scheduled until you call
begin(). Consent is intentionally not persisted by the SDK, so re-arm fromApplication.onCreate()(gated on your own user preference) — scheduled runs that find no armed client are skipped without disturbing the cadence. - Scheduling follows the user's sign-in state. The periodic work starts when an in-scope account is linked and is cancelled when the last one signs out, so a signed-out user's timer never keeps ticking. All scheduling funnels through a single unique work name, so overlapping runs are impossible no matter how often you arm or reconfigure.
- Configurable cadence and overrides.
intervalHoursdefaults to 24 hours with a 12-hour floor and no upper limit;overrideEndpoint,overrideDateTime, andcountryCodemirror theirImapClientcounterparts and are re-applied to the schedule the moment you change them. - Predictable teardown.
cancel()unsubscribes your callbacks and stops the schedule while leaving the client re-armable;close()releases it for good. Scope the client to yourApplication— closing it cancels the schedule. - Initial provider scope: Gmail IMAP accounts with a non-empty username. Check any account with
AutoScrapeClient.isAutoScrapeAccount(credentials). - See the Automated Scrape guide for setup, Kotlin and Java samples, best practices, and troubleshooting.
- Two-line integration. Create an
- Stability fixes and improvements
Digital Analytics SDK (2.3.0)
- Stability fixes and improvements
Earnings SDK (2.3.0)
- Stability fixes and improvements
Logcat SDK (2.3.0)
- Stability fixes and improvements
Security SDK (2.3.0)
- Stability fixes and improvements
Surveys SDK (2.3.0)
- Stability fixes and improvements