Skip to content

Releases: stripe/stripe-terminal-ios

3.6.0

24 May 17:03
Compare
Choose a tag to compare
  • Built with Xcode 15.2, Swift version 5.9.
  • Update: Using SCPOfflineBehaviorRequireOnline will attempt online network calls regardless of the current network status. This may cause requests while the network is offline to take longer as requests will always be attempted online first.
  • Update: Tapping or inserting an unsupported card will now report SCPReaderDisplayMessageTryAnotherCard instead of SCPReaderDisplayMessageTryAnotherReadMethod.
  • Update: paymentStatus now stays ready while API-only commands are in-progress. This includes createPaymentIntent, createSetupIntent, cancelPaymentIntent, and cancelSetupIntent.
  • Update: paymentStatus now updates to waitingForInput while collectInputs is running.
  • Update: If a reader receives the SCPErrorReaderMissingEncryptionKeys error when collecting a payment the SDK now also reboots the reader in addition to the existing behavior of disconnecting from the reader. Reconnecting to the reader should re-install the keys and allow the reader to collect payments again.

3.5.0

12 Apr 15:35
Compare
Choose a tag to compare

3.5.0 2024-04-12

  • Built with Xcode 15.2, Swift version 5.9.
  • Beta: CollectInputs can now display optional toggles in each input type.
  • New: Support for connecting to mPOS readers over USB-C on iPads with M-series chips.
    • This feature is in private beta. Please contact us if you are interested in joining this beta.
  • New: Added an xcprivacy file to the framework listing our data use and required reason API usage.
  • Update: Added SetupIntentParameters.paymentMethodTypes.
    • Note for internet reader integrations, this feature requires reader software version 2.22 or later to be installed on your internet reader.
  • Update: supportsReadersOfType now returns NO with error SCPErrorInvalidDiscoveryConfiguration if the device type and discovery method are incompatible.
  • Update: When a Bluetooth reader has an error installing a required update the SDK will allow connecting to the reader if the reader is running a recent version. The error installing the update will still be communicated in the reader:didFinishInstallingUpdate:error: callback. The update will be available to be retried using installAvailableUpdate. If the update isn't installed with installAvailableUpdate the installation will be retried the next time connecting to the reader.
  • Fixes #291: Fixes a bug where the cancelable returned by collectPaymentMethod was not responsive in certain conditions when a card was left in the reader or inserted before calling collectPaymentMethod.
  • Fixes a bug where rebootReader would return SCPErrorUnexpectedSdkError if called after the reader received a firmware update.

3.4.0

04 Mar 18:48
3.4.0
ab325c6
Compare
Choose a tag to compare
  • New: For Tap to Pay on iPhone, added autoReconnectOnUnexpectedDisconnect and autoReconnectionDelegate to the SCPLocalMobileConnectionConfiguration. When autoReconnectOnUnexpectedDisconnect is enabled, the SDK will attempt to restore connection upon any unexpected disconnect to your local mobile reader. See Stripe documentation for details.
  • Update: Formatting on certain fields exposed in SCPOfflineCardPresentDetails is now consistent with SCPCardPresentDetails
    • expYear is a four-digit number
    • receiptDetails.accountType is no longer a number, and is one of default, savings, checking, or credit
  • Update: The SDK now requires that a NSBluetoothAlwaysUsageDescription key be present in your app's Info.plist instead of a NSBluetoothPeripheralUsageDescription key.
  • Update: Allow SCPCollectConfiguration.updatePaymentIntent to be true for offline enabled readers when SCPCreateConfiguration has offlineBehavior set to SCPOfflineBehaviorRequireOnline.
  • Update: Added new SCPErrorReaderMissingEncryptionKeys. Returned in a rare condition where the reader is missing the required keys to encrypt payment method data. The reader will disconnect if this error is hit. Reconnecting to the reader should re-install the keys.
  • Update: More descriptive error messages in SCPErrorKeyMessage for operations that fail due to network-related errors.
  • Fixes a bug where SCPPaymentIntent.stripeId was not nil in the response to confirmPaymentIntent when operating offline with a smart reader.
  • Fixes a rare bug where Bluetooth readers could get into a state where they would no longer accept payments and needed to be replaced.

3.3.1

07 Feb 21:59
3.3.1
c82b393
Compare
Choose a tag to compare
  • Built with Xcode 15.2, Swift version 5.9.
  • Fixes #282: Fixes a crash when connecting to Stripe Reader M2 or BBPOS Chipper 2X devices that are running older configs.
  • Fixes a race condition that could result in a crash when an internet reader unexpectedly disconnects.

3.3.0

02 Feb 19:04
Compare
Choose a tag to compare
  • Built with Xcode 15.2, Swift version 5.9.
  • New: rebootReader method to reboot Bluetooth readers.
  • New: An optional reader:didDisconnect: method was added to SCPBluetoothReaderDelegate which provides a new SCPDisconnectReason to communicate known reasons why a Bluetooth reader disconnected.
  • New: Support refunding payments with the SCPPaymentIntent.stripeId.
    • Note for internet reader integrations, this feature requires reader software version 2.19 or later to be installed on your internet reader.
  • New: Added support for retrieving and updating reader settings on WisePOS E and Stripe S700 by calling retrieveReaderSettings and setReaderSettings on SCPTerminal.
    • Beta: Accessibility settings are provided at this time, allowing text-to-speech via speakers to be turned on and off as needed.
    • Please contact us if you are interested in joining this beta.
  • Beta: Added a collectInputs method to display forms and collect information from customers.
  • Fixes a bug where collected offline payments using a reader that wasn't connected to online first would fail to be forwarded.
  • Fixes #272: Removed old note about discoverReaders not returning an error when canceled. In 3.x SDKs canceling discoverReaders reports SCPErrorCanceled.
  • Fixes #251: Allow acceptance of Discover cards stored in Apple Pay.
  • Fixes #279: Canceling collectPaymentMethod no longer hangs if card was removed early and the reader went back to the tipping input screen.

3.2.1

21 Dec 01:19
Compare
Choose a tag to compare
  • Built with Xcode 14.3, Swift version 5.8.
  • Fixes #276: Fixes a regression introduced in 3.2.0 where reconnecting to a Bluetooth reader can timeout after disabling and re-enabling Bluetooth on the iOS device.

3.2.0

17 Nov 15:27
Compare
Choose a tag to compare
  • Built with Xcode 14.3, Swift version 5.8.
  • Update: retrievePaymentIntent and retrieveSetupIntent no longer require a connected reader.
  • Update: Adds SCPCharge.authorizationCode to the sdk's SCPCharge model when it is available.
    • Note for internet reader integrations, this feature requires reader software version 2.18 or later to be installed on your internet reader.
  • Update: Added network and wallet to SCPCardPresentDetails.
  • Update: Added paymentMethodId to SCPPaymentIntent.
  • Update: The amount of time a reader can be used offline before needing to be activated online has been reduced to 30 days.
  • Update: SCPReaderNetworkStatus has a new case (SCPReaderStatusUnknown) that represents the network status of an internet reader that was discovered while the SDK is operating in offline mode.
  • Fix: SCPSetupIntent.status is now SCPSetupIntentStatusRequiresConfirmation after the payment has been collected.
  • Fixes a rare crash when connecting to a Bluetooth reader with a critically low battery.
  • Fixes a rare crash when installing a Bluetooth reader update.
  • Fixes a bug where cancelPaymentIntent, createSetupIntent, and cancelSetupIntent were not being queued and could error with an unexpected SDK error if called while another command was in progress.
  • Fixes merchant choice routing not updating upon switching reader regions.
  • Fixes #262: Initial Bluetooth reader battery level is reported immediately after connecting to the reader.
  • Fixes error messaging to not return an unexpected SDK error in some situations when connected to a smart reader.
  • Fixes an issue where integrations could hit SCPErrorSessionExpired when the SDK comes back online while using offline mode.

3.1.0

10 Oct 17:03
Compare
Choose a tag to compare
  • Built with Xcode 14.3, Swift version 5.8.
  • New: Public beta support for offline payments.
  • Beta: Allow customer-initiated cancellation for PaymentIntent, SetupIntent, and Refund payment method collection with internet readers. See setEnableCustomerCancellation: on SCPCollectConfigurationBuilder, SCPSetupIntentConfigurationBuilder, and SCPRefundConfigurationBuilder.
    • Note: This feature requires reader software version 2.17 or later to be installed on your internet reader.
    • Please contact us if you want to support customer-initiated cancellation.
  • Update: When connecting to internet readers, the SDK no longer relies on DNS. This resolves an error experienced by users of some DNS providers.
  • Fixes an issue where tipping and offline configs may not be fetched when connecting to an mPOS reader. Tipping and offline mode users should upgrade their SDK.
  • Fixes an issue where the SDK wouldn't announce an unexpected disconnect if an internet reader receives an invalid session error. This can happen after the reader reboots while the SDK is in the background.
  • Fixes an issue where the SDK would error with SCPErrorFeatureNotAvailableWithConnectedReader instead of SCPErrorNotConnectedToReader when calling certain commands without being connected to a reader.
  • Fixes a bug where the SDK could deadlock if attempting to connect to the same reader twice.
  • Fixes a crash running Terminal.shared.supportsReaders on M1 Mac.
  • Improved confirmPaymentIntent performance when location is not available.

v2.23.2

18 Sep 17:05
v2.23.2
40ebee1
Compare
Choose a tag to compare
  • Fixes an issue where the SDK wouldn't announce an unexpected disconnect if an internet reader receives an invalid session error. This can happen after the reader reboots while the SDK is in the background.
  • Fixes #252: SCPLocalMobileConnectionConfiguration - initWithLocationId:merchantDisplayName:onBehalfOf:tosAcceptancePermitted: now correctly sets the tosAcceptancePermitted value in the retuned configuration.

3.0.0

08 Sep 16:50
3.0.0
3372c72
Compare
Choose a tag to compare
  • Built with Xcode 14.3, Swift version 5.8.
  • New: Private beta support for offline payments.
  • Update: Minimum deployment target updated from iOS 11.0 to iOS 13.0.
  • Update: SCPPaymentIntent.stripeId is now nullable to support offline payments.
  • Update: Terminal.processPayment has been renamed to Terminal.confirmPaymentIntent.
  • Update: Terminal.processRefund has been renamed to Terminal.confirmRefund.
  • Update: ReconnectionDelegate methods now provide the instance of the Reader that is being reconnected to instead of the Terminal instance.
  • Update: Removed the SCPErrorBusy error. The SDK will now queue incoming commands if another command is already running.
  • Update: Removed SCPErrorCannotConnectToUndiscoveredReader and SCPErrorMustBeDiscoveringToConnect errors. The SDK now supports connecting to an SCPReader instance that was previously discovered without needing to restart discovery.
  • Update: Removed Terminal.readReusableCard. This functionality is replaced by SetupIntents.
  • Update: discoverReaders is now completed when connectReader is called. This is a behavior change from 2.x where discoverReaders would continue running until connect succeeded. If connect fails you can retry connecting to a previously discovered SCPReader or restart discoverReaders.
  • Update: Canceling discoverReaders now completes with an SCPErrorCanceled error. Previously no error was provided when canceled.
  • Update: DiscoveryConfiguration is now a protocol with concrete classes for each discovery method: BluetoothScanDiscoveryConfiguration, BluetoothProximityDiscoveryConfiguration, InternetDiscoveryConfiguration, and LocalMobileDiscoveryConfiguration. Each class has a Builder exposing only the configuration values that apply to that discovery method.
  • Update: Configuration and parameter classes are now immutable and need to be built with builders. Example: To create SCPPaymentIntentParameters use SCPPaymentIntentParametersBuilder which has setters for all the parameters and a build: method to create the SCPPaymentIntentParameters instance.
  • Update: Removed CardDetails.fingerprint and CardPresentDetails.fingerprint. You will still be able to access the fingerprint server-side using Stripe server-side SDKs.
  • Fixes #240: SCPDiscoveryConfiguration.timeout is now respected when using simulated Bluetooth scan.