v3.17.0
2026-09-22
Impact
New features
onDataRequestcan now answer Transact. The handler previously only announced that Transact needed data, with no way to supply it. It is now request/response: the handler returns anAtomicTransactDataResponse(ornullto send nothing) and may be async, so the data can be gathered from the user or a backend first. New typesAtomicTransactDataResponse,AtomicTransactCardData,AtomicTransactIdentity, andAtomicTransactCardTypematch the nativeTransactDataResponsefield for field. Integrators already implementingonDataRequestmust update their handler's signature.- Deferred payment methods. New
deferredPaymentMethodStrategyconfig (sdk/api) lets an app have Transact request the payment method throughonDataRequestinstead of reading it from the Atomic API. Leaving it unset keeps the API default.
Bug fixes
onDataRequestwas unusable before this release.fieldswas decoded into the wrong type and threw before the handler ever ran, andtaskId,userId, andidentifierwere never sent by either platform.
iOS SDK upgrade (3.35.0 → 3.35.2)
- Okta Verify handoff. Users authenticating through Okta can now be redirected into the Okta Verify app during the auth flow.
- iOS 26+ login pages. Fixed the bottom button on some login pages being hidden below the toolbar.
- Crash fix for mixed Swift configurations. Prevented a crash during WebKit operations when the SDK is linked alongside Swift 5 language-mode code.
Android SDK upgrade (3.24.0 → 3.24.1)
- Okta Verify handoff. Users authenticating through Okta can now be redirected into the Okta Verify app during the auth flow.
Changes
onDataRequestnow returns a response to Transact — the handler may be async and returns anAtomicTransactDataResponseornull(#100)- Added
deferredPaymentMethodStrategytoAtomicConfig, so Transact can request the payment method throughonDataRequestrather than the Atomic API (#100) - Fixed
onDataRequestthrowing onfieldsdecoding, andtaskId/userId/identifiernever being sent (#100)
Platform SDK Versions
Full Changelog: v3.16.0...v3.17.0