Skip to main content

Android

DyScan for Android

Dyneti's credit-card scanning SDK for Android

Change Log

1.7.23 - 2025-10-31

  • Add Xamarin/MAUI specific init call with parameter to disable memory mapping.

1.7.22 - 2025-09-16

  • Fix for building in an environment with a case-insensitive file system

1.7.21 - 2025-09-12

  • Bug fixes

1.7.20 - 2025-08-29

  • Bug fixes

1.7.19 - 2025-07-06

  • Fix for Xamarin builds.

1.7.18 - 2025-05-22

  • Add NFC scanning as an add-on package

1.7.17 - 2025-04-10

  • Anti-fraud feature update

1.7.16 - 2024-12-13

  • New gift card mode to support special gift card formats

1.7.15 - 2024-12-10

  • onScanProgress update when end user does not display card number properly to the camera
  • New helper text customization for DyScanView

1.7.14 - 2024-11-12

  • Support 16KB page size
  • Support for Sodexo cards

1.7.13 - 2024-07-10

  • Making the number mismatch and wrong-card detection features work when either the expected card BIN OR last four digits are provided. In previous DyScan versions both had to be simultaneously provided for these features to work.

1.7.12 - 2024-07-01

  • Bug fixes for OnePlus devices

1.7.11 - 2024-06-27

  • New feature to detect when the end-user is scanning the wrong card (when using DyScan for verification). This can be achieved by setting the SDK parameter detectWrongCard to true (defaults to false) and providing the string parameters expectedBIN and expectedLastFourDigits (which correspond to the first six and last four digits of the expected credit card number). When the end user attempts to scan the wrong card, the onProgressUpdate callback returns a boolean numberMismatch with true value (which can be used to signal the end user that they are not scanning the expected card) and the scan continues. Upon showing the expected card, the scan completes.
  • New feature to further customize the scan frame. This can be achieved using three new boolean parameters: roundCorners, expandCorners, and chopCorners (which default to true, false, and false, respectively).

1.6.11 - 2024-04-04

  • Bump compileSdk to 34 (targetSdk stays at 33)
  • Bump CameraX to 1.3.2 (latest stable), which supports OnePlus 12
  • Anti-fraud feature updates
  • Stability improvements (many minor bugs fixed)

1.6.10 - 2024-01-31

  • Blackout image logic improvements
  • Minor improvements

1.6.9 - 2024-01-24

  • Anti-fraud feature updates
  • 2x2 card format support

1.6.8 - 2024-01-11

  • Bug fixes

1.6.7 - 2024-01-10

  • Anti-fraud feature updates
  • Expose cardOrientation and enableSidewaysScanning for DyScan Protect. Setting the enableSidewaysScanning flag to true allows vertical cards to be scanned in a sideways orientation. cardOrientation is a new field returned with the scan data that specifies the orientation of the card that was scanned.
  • Expose awaitScanStorage for DyScan Protect. Setting the awaitScanStorage flag to true forces DyScan Protect to wait for a successful backend response before returning scan data.

1.6.6 - 2023-12-05

  • Anti-fraud feature updates
  • Expose UpdateProgressAPI as a way to surface last four digits and card network to end users mid-scan
  • Minor improvements

1.6.5 - 2023-10-27

  • Expose cardOrientation and enableSidewaysScanning

1.6.4 - 2023-09-30

  • Enhanced anti-fraud features, including improved taped cards detection (DyScan Protect only)
  • Added getScanId() and getPayloadId() as methods in CreditCard for new Integrity Check API (DyScan Protect only)
  • Minor improvements

1.6.0 - 2023-06-29

  • Android crash fix
  • DyScan Protect: Changed package name from com.dyneti.android.dyscan to com.dyneti.android.dyscan_protect
  • DyScan Protect: Added DyScan Protect prefixes to classes names

1.5.1 - 2023-05-30

  • Minor improvements and bug fixes

1.5.0 - 2023-05-25

  • Made major improvements to camera handling code
  • Optimized camera performance when torch is on
  • Bumped up minSdkVersion to 21
  • Added logging for tap-to-focus and exposure compensation for performance analytics
  • Code cleanup

1.4.3 - 2023-05-10

  • Minor improvements and bug fixes

1.4.2 - 2023-04-20

  • Added tap to focus. Tap the screen and the camera should acquire focus. An autofocus circle will appear for a moment onscreen at the focus area

1.4.1 - 2023-04-07

  • Changed to mutable StringBuffers in CreditCard class
  • Minor improvements and bug fixes

1.4.0 - 2023-02-11

  • Updated anti-fraud format
  • Updated card formats

1.3.1 - 2022-12-22

  • UI rewrite
  • Fixed capture session NullPointerException
  • Added torch toggle function for DyScanView
  • Added vertical card toggle function for DyScanView

1.2.2 - 2022-10-04

  • Fixed camera IllegalStateException

1.2.1 - 2022-09-13

  • Enhanced accessibility

1.2.0 - 2022-08-09

  • Separated Tensorflow from DyScan

1.1.13 - 2022-08-04

  • Fixed ProGuard issue

1.1.12 - 2022-07-19

  • Fixed narrow width UI bug for RN DyScan
  • Added exported tag to DyScanActivity in AndroidManifest

1.1.11 - 2022-06-14

  • Minor bug fix

1.1.10 - 2022-05-19

  • Enhanced accessibility
  • Fixed crash on Android 12+ devices

1.1.9 - 2022-03-15

  • Added isDeviceSupported function

1.1.8 - 2021-12-14

  • Updated to Gradle 7

1.1.7 - 2021-08-24

  • Added additional encryption

1.1.6 - 2021-07-05

  • Enabled new Mastercard prefixes

1.1.5 - 2021-06-18

  • Added support for more Maestro cards

1.1.4 - 2021-05-05

  • Migrated to AndroidX

1.1.3 - 2020-12-04

  • Added SDK params logging

1.1.2 - 2020-10-08

  • Logging fix
  • Blackout fix

1.1.1 - 2020-08-28

  • Add support for MM.YY and MM.YYYY exp date formats

1.1.0 - 2020-08-13

  • Remote config for minor UI changes and model improvements

1.0.3 - 2020-07-24

  • Tensorflow update
  • Minor adjustments to anti-fraud features

1.0.2 - 2020-07-06

  • Anti-fraud feature updates

1.0.1 - 2020-05-01

  • Fixed OutOfMemoryError

1.0.0 - 2020-03-31

  • Minor improvements

0.11.7 - 2020-03-30

  • Support for API 17+

0.11.6 - 2020-03-10

  • Support additional card formats in Southeast Asia
  • Minor bug fixes

0.11.5 - 2020-03-03

  • Minor improvements

0.11.4 - 2020-02-24

  • Make rotate function in DyScanView public

0.11.3 - 2020-01-08

  • Relocate logo to just above scan region
  • Send build version to server earlier

0.11.2 - 2019-12-19

  • Fixed reading of expiry on cards expiring in the current month
  • Addressed issue where configuration failure could be ignored
  • Improved torch handling
  • Fixed NPE due to race condition in camera code
  • Fixed issue where flash could get stuck off
  • Added Dyneti logo to scan view by default
  • Improved code shrinking in release builds

0.11.1 - 2019-10-29

  • Center scan region by default
  • Add support for national cards
  • Version numbering now uses 3 digits to match iOS
  • Add device support check
  • Add another less common card spacing format
  • Improve corner view highlighting reliability
  • Fix API 19 crash when setting aspect ratio
  • Prevent NPE due to flash switch race condition
  • Fix OBOE allowing stale frames to be used as input
  • Prevent IllegalStateException when creating preview
  • Address some StrictMode warnings (leaked closable, disk read, socket tagging)

0.10 - 2019-09-20

  • Update ML model
  • Add number overlay as hint and display by default
  • Restore corner detection indicators
  • Handle CameraAccessExceptions better
  • Adjust flash switch brightness logic
  • Fix uncommon ANR due to not releasing camera lock on error
  • Add support for a few more uncommon credit card formats
  • Fix race condition when exiting
  • Make rotate button hidden by default

0.9 - 2019-08-29

  • Improve performance with old camera API on API 19 and 20 devices
  • Prevent crash on API 19 due to getBitmap() being called in background
  • Address issue with newer phones focusing too close
  • Fix React Native crashes, view visibility, and aspect ratio issues

0.8 - 2019-08-20

  • Release DyScanView for more customized UIs
  • Lower minSDK to API 19
  • Make camera preview enlarge to fill available space
  • Make card overlay use found card number and date locations
  • Prohibit screenshots in DyScanActivity
  • Add consumer Proguard rules
  • Make no resources public

0.7 - 2019-08-13

  • Improve post-processing performance
  • Increase maximum number of predictions used
  • Fix crash on invalid bounding boxes
  • Fix OBOE where a cluster would be dropped
  • Switch to Java 7 for compatibility

0.6 - 2019-08-01

  • Update deep learning model
  • Improve camera handling, including choosing optimal autofocus settings and blur-prevention settings
  • Fix Huawei 6P-specific camera bug
  • Add card number overlay feature
  • Add manual entry button option
  • Fix race condition which sometimes led to UI not being drawn
  • Fix React Native Android View rendering bug
  • Add debug logging option