All notable changes to this project will be documented in this file.
- Fix iOS build failure when CocoaPods is configured with
use_frameworks! :linkage => :static. The Swift bridging header is now imported using__has_includeto prefer the framework-style path when available, with a fallback to the quoted import for static-library builds. - Bump iOS SDK to 4.0.1.
- Bump Android SDK to 4.1.1.
- Upgrades the SDK to target the latest verison of Link: v4.
- Adds support for a new set of bill and account lifecycle events.
- The
billRemovedevent handler now usesPinwheelBillEventinstead ofPinwheelBillSwitchEvent.
- An optional
accountIdfield has been added toPinwheelBillSwitchPayload.
billSwitchFailurebillAddedbillEditedbillMarkedInactivebillSwitchPlatformsAddedbillSwitchPlatformsRemovedbillCancelSuccessbillCancelFailurecalendarSynccustomerTermsAccepteduserActivated
3.xReleases - 3.0.0 | 3.0.1 | 3.0.2 | 3.0.3 | 3.0.4 | 3.0.5 | 3.1.0 | 3.1.1 | 3.2.0 | 3.2.1 | 3.2.2 | 3.2.3 | 3.2.4 | 3.2.5 | 3.3.0 | 3.3.1 | 3.3.2 | 3.4.0 | 3.5.0 | 3.5.1 | 3.5.2 | 3.5.3 | 3.5.4 | 3.6.0 | 3.6.1 | 3.7.0 | 3.7.1 | 3.7.2
- Fix iOS build failure with Xcode 26 (Apple Clang 21+). The
fmtlibrary bundled with React Native usesFMT_STRINGmacros that rely onconsteval, which Xcode 26's stricter compiler rejects. This release patches the Podfile to disableconstevalinfmtfor compatibility.
- Fix bug blocking react-native-sdk from compiling on the latest Mac OS / Xcode
- Releases useSecureOrigin option to allow implementors to use a content security policy protected iframe
- We fixed an expo 54 issue blocking the PinwheelView import
- Deprecates the
isGuidedSwitchfield in favor ofisIntegratedSwitchin the Bill Switch payload on iOS.
- Enables more Bill Switch events on Android
- Deprecates the
isGuidedSwitchfield in favor ofisIntegratedSwitchin the Bill Switch payload. - Improves the Bill Switch UX.
- Fixes exit bug on iOS for Bill Switch products.
- Fix bug on iOS for Bill Switch products when opening certain hyperlinks.
- Fixes exit bug on iOS for Bill Switch products.
- Cosmetic enhacements for Bill Switch products.
- This version contains a bug (on iOS only) that prevents user exit from Bill Switch products. Payroll-enabled products (Deposit Switch, Verify, etc.) are unaffected and working normally.
- Added support for Bill Navigator events.
- Enhanced support for Bill Navigator.
- Updates Android R8/proguard rules to prevent duplicate class errors in some instances.
- Internal security enhancements on iOS.
- Introduces dark mode support for Link, which can be enabled using the
useDarkModeprop. - Internal NativeLink support changes to improve conversion rates.
Version bump to align with backend updates and enable internal improvements.
- Prevent crash when component is wrapped around a
<Modal/>. - Internal bugfixes to improve stability in the NativeLink flow.
Improved the modal behavior on iOS to ensure it consistently re-initializes after being closed or unmounted on the React Native New Architecture.
Resolved a stability issue that could cause crashes on iOS 15 devices.
Improved edge-to-edge support on Android by responding to window insets.
This behavior is enabled by default and can be customized using the new optional handleInsets prop added to the component.
- Introduces support for the React Native New Architecture.
- Updates sizing/layout logic to improve overall modal responsiveness.
Expand internal functionality to increase conversion rate and upgrade vulnerable dependencies.
- Introduces support for additional platforms and integrations, improving conversion rates and overall functionality.
- Fix the casing of the
screenNamefield in the exportedScreenTransitionEventPayloadevent payload type.
Some integrations may now require camera access for verification purposes. Ensure the necessary permissions are configured in your project:
Android: Add the following permission to your AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />
iOS: Add the following key and description to your Info.plist:
<key>NSCameraUsageDescription</key>
<string>We need access to your camera for verification purposes.</string>
Expand internal functionality to support a broader range of platforms and increase conversion rate. Export OtherEventPayload event payload type for the other_event event.
Bugfix: Normalize event names to lower case. Event names began firing as uppercase in versions 3.0.0 and 2.5.0.
Changed Minimum Android SDK requirements to 22
Changed example app Minimum Android SDK requirements to 22
Expand internal functionality to support a broader range of platforms and increase conversion rate.
This new major version bump introduces an updated API to support partner-based switches.
- The
actionfield ininput_allocationevent is now optional. - The
paramsfield in thesuccessevent uses theinput_allocationschema with fieldsactionandallocation.
- Removed
LinkResulttype export. This was the oldsuccessevent payload. The new payload has the same format as the newly exportedSuccessEventPayload. - Removed
EventPayloadtype export. The event handler function will now be implicitly typed. - Removed
ScreenTransitiontype export. UseScreenTransitionEventPayloadinstead. - Removed
EmptyPayloadObjecttype export. - Removed
Errortype export. UseErrorEventPayloadinstead. (Errorwas marked as deprecated in version 2.) - Removed
ErrorTypetype export. UsePinwheelErrorTypeinstead. (ErrorTypewas marked as deprecated in version 2.) - Removed
input_amountevent. Useinput_allocationeven instead. - Removed
PINWHEEL_MESSAGE_TYPES.
2.5.0 | 2.5.1 | 2.5.2 | 2.5.3 | 2.5.4
Normalize event names to lower case. Event names began firing as uppercase in versions 3.0.0 and 2.5.0.
Changed Minimum Android SDK requirements to 22
Expand internal functionality to support a broader range of platforms and increase conversion rate.
- Internal contract changes
We're thrilled to announce the latest version of our SDK! While you'll find that our familiar API contract remains unchanged, there's a host of improvements that make this upgrade indispensable:
- Enhanced Redundancy: 🛡️ We've fortified our systems, ensuring smoother recovery from integration failures for a significant percentage of our traffic.
- Superior Uptime: 🦾 Reliability is a top priority. This upgrade brings even more robust uptime for DDS integrations.
- Increased Conversion:
↗️ We are leveraging system level features to increase conversion. - Easy Upgrade: 🥧 No changes were made to the API contract. Easy as pie.
- Removing
overridesfrom main package. - Updating example app to use newest ReactNative versions.
- Changing devDependencies to use newest React Native Webview (for typing).
2.3.4 | 2.3.5 | 2.3.6 | 2.3.10 | 2.3.12 | 2.3.13 | 2.3.14 | 2.3.17
Export ScreenTransition event payload type for the screen_transition event.
Remove hermes-engine and shell-quote sub-dependencies from package-lock files.
Bump hermes-engine and shell-quote sub-dependency package.
Add CircleCI scripting and local scripts.
- Add
npm run devscript. - Remove need for hardcoding api secret in code to run locally.
Use node 16.7.0 instead of 12.16.1 to install dependencies.
N/A
N/A
- Export
EventPayloadtype. - Export
PinwheelErrortype. - Export
PinwheelErrorTypetype. - Export
EmptyPayloadObjecttype asRecord<string, never>.
EventPayloadis no longer a union containing{}. It now containsRecord<string, never>instead due to this behavior.- Mark exported
Errortype as @deprecated because it collides with the built-in javascriptErrorobject. Replaced withPinwheelError. - Mark exported
ErrorTypetype as @deprecated because the new naming convention is prefixing with "PinwheelError". Replaced withPinwheelErrorType. - Update
onExittype to be(error: PinwheelError | Record<string, never>)to be accurate with current functionality.