card.io provides fast, easy credit card scanning in mobile apps

Overview

card.io logo

card.io SDK for iOS

card.io provides fast, easy credit card scanning in mobile apps.

NEW!!! card.io is now an open-source project!

As of December 2014, all of the source code for card.io is now available at the card.io-iOS-source repo.

What does this mean for you?
  • If you simply wish to integrate card.io into your mobile apps, then you can (and probably should) ignore the existence of card.io-iOS-source.
  • But if you're curious about how card.io performs its magic, or if you'd like to improve the appearance or behavior of card.io, then come visit card.io-iOS-source!

Brought to you by
PayPal logo

Stay up to date

Please keep your app up to date with the latest version of the SDK. All releases follow semantic versioning.

To receive updates about new versions:

You can find and start technical discussions using the Stack Overflow card.io tag.

Sample app

For a quick first look at card.io, we have included a very small sample application that you can build and run.

  1. Download the latest version of the SDK.
  2. Simply open the SampleApp folder or the SampleApp-Swift folder and follow the instructions in the README.md file you find there.

Instructions

The card.io iOS SDK includes header files and a single static library. We'll walk you through integration and usage.

Requirements

  • The latest non-beta version of Xcode. (Older or newer versions might also work.)
  • Supports target deployment of iOS version 6.1+ and instruction set armv7+ (including 64-bit).

Setup

If you use CocoaPods, then add this line to your podfile:
pod 'CardIO'
If you don't use CocoaPods, then:
  1. Download the latest version of the SDK.
  2. Add the CardIO directory (containing several .h files, libCardIO.a, libopencv_core.a, and libopencv_imgproc.a) to your Xcode project.
  3. In your project's Build Settings (in the TARGETS section, not the PROJECTS section), add -lc++ to Other Linker Flags.
  4. Either:
  • Add these frameworks to your project. Weak linking is supported.
    • Accelerate
    • AudioToolbox
    • AVFoundation
    • CoreGraphics
    • CoreMedia
    • CoreVideo
    • Foundation
    • MobileCoreServices
    • OpenGLES
    • QuartzCore
    • Security
    • UIKit
  1. or:
  • Add only these frameworks to your project (as Optional [i.e., weak-linked] libraries):
    • Accelerate
    • AVFoundation
    • AudioToolbox
    • CoreMedia
    • MobileCoreServices
  • and confirm that these two Build Settings are both enabled:
    • Enable Modules (C and Objective-C)
    • Link Frameworks Automatically
With or without CocoaPods:
  1. Add card.io's open source license acknowledgments to your app's acknowledgments.
  2. Refer to the header files for more usage options and information.
  3. You should add the key NSCameraUsageDescription to your app's Info.plist and set the value to be a string describing why your app needs to use the camera (e.g. "To scan credit cards."). This string will be displayed when the app initially requests permission to access the camera.

Sample code

You can use card.io in two ways:

  • As a view controller: Quick and easy. Create a CardIOPaymentViewController and present it modally. The card.io view controller handles all aspects of the UX, including manual entry as a fallback, all transitions, and number confirmation.

  • As a view: More flexible. Create a CardIOView to do card scanning only and manage everything else yourself. This enables a broader range of presentations, such as in-place transitions, but requires that you handle the rest of the UI yourself.

Integrate as a View Controller

Create a class (most likely a subclass of UIViewController) that conforms to CardIOPaymentViewControllerDelegate.

// SomeViewController.h

#import "CardIO.h"
@interface SomeViewController : UIViewController<CardIOPaymentViewControllerDelegate>
// ...

Make an optional call to speed up the subsequent launch of card.io scanning:

// SomeViewController.m

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  [CardIOUtilities preloadCardIO];
}

Start card.io card scanning:

// SomeViewController.m

- (IBAction)scanCard:(id)sender {
  CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self];
  [self presentViewController:scanViewController animated:YES completion:nil];
}

Write delegate methods to receive the card info or a cancellation:

// SomeViewController.m

- (void)userDidCancelPaymentViewController:(CardIOPaymentViewController *)scanViewController {
  NSLog(@"User canceled payment info");
  // Handle user cancellation here...
  [scanViewController dismissViewControllerAnimated:YES completion:nil];
}

- (void)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)info inPaymentViewController:(CardIOPaymentViewController *)scanViewController {
  // The full card number is available as info.cardNumber, but don't log that!
  NSLog(@"Received card info. Number: %@, expiry: %02i/%i, cvv: %@.", info.redactedCardNumber, info.expiryMonth, info.expiryYear, info.cvv);
  // Use the card info...
  [scanViewController dismissViewControllerAnimated:YES completion:nil];
}

Integrate as a View

CardIOView is new as of card.io Version 3.3.0 (September 2013). We look forward to seeing how creative developers integrate it into their apps. If you do something cool with it, share it with @cardio! We also look forward to quickly resolving any issues that you may discover.

Create a class (most likely a subclass of UIViewController) that conforms to CardIOViewDelegate.

// SomeViewController.h

#import "CardIO.h"
@interface SomeViewController : UIViewController<CardIOViewDelegate>
// ...

Using a CardIOView provides UI flexibility. Here are two sample integration options:

  • Create a CardIOView when you need it, and then delete it when its work is finished.
  • Include a hidden CardIOView in your view, show it when you need it, and then hide it when its work is finished.
Option 1: Create a CardIOView when you need it

Confirm that the user's device is capable of scanning cards:

// SomeViewController.m

- (void)viewDidLoad {
  [super viewDidLoad];

  if (![CardIOUtilities canReadCardWithCamera]) {
    // Hide your "Scan Card" button, or take other appropriate action...
  }
}

Make an optional call to speed up the subsequent launch of card.io scanning:

// SomeViewController.m

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  [CardIOUtilities preloadCardIO];
}

Start card.io card scanning:

// SomeViewController.m

- (IBAction)scanCard:(id)sender {
  CardIOView *cardIOView = [[CardIOView alloc] initWithFrame:CGRECT_WITHIN_YOUR_VIEW];
  cardIOView.delegate = self;
  
  [self.view addSubview:cardIOView];
}

Write the delegate method to receive the results:

// SomeViewController.m

- (void)cardIOView:(CardIOView *)cardIOView didScanCard:(CardIOCreditCardInfo *)info {
    if (info) {
    // The full card number is available as info.cardNumber, but don't log that!
    NSLog(@"Received card info. Number: %@, expiry: %02i/%i, cvv: %@.", info.redactedCardNumber, info.expiryMonth, info.expiryYear, info.cvv);
    // Use the card info...
  }
  else {
    NSLog(@"User cancelled payment info");
    // Handle user cancellation here...
  }
  
  [cardIOView removeFromSuperview];
}

Include a method to cancel card scanning:

// SomeViewController.m

- (IBAction)cancelScanCard:(id)sender {
  [cardIOView removeFromSuperview];
}
Option 2: Include a hidden CardIOView in your view

Make an IBOutlet property:

// SomeViewController.m

@interface SomeViewController ()
@property(nonatomic, strong, readwrite) IBOutlet CardIOView *cardIOView;
@end

In your .xib, include a CardIOView, mark it as hidden, and connect it to the IBOutlet property. (Note: usually you will want to set the background color of the CardIOView to clearColor.)

After confirming that the user's device is capable of scanning cards, set the delegate property of the CardIOView:

// SomeViewController.m

- (void)viewDidLoad {
  [super viewDidLoad];

  if (![CardIOUtilities canReadCardWithCamera]) {
    // Hide your "Scan Card" button, remove the CardIOView from your view, and/or take other appropriate action...
  } else {
    self.cardIOView.delegate = self;
  }
}

Make an optional call to speed up the subsequent launch of card.io scanning:

// SomeViewController.m

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  [CardIOUtilities preloadCardIO];
}

Start card.io card scanning:

// SomeViewController.m

- (IBAction)scanCard:(id)sender {
  self.cardIOView.hidden = NO;
}

Write the delegate method to receive the results:

// SomeViewController.m

- (void)cardIOView:(CardIOView *)cardIOView didScanCard:(CardIOCreditCardInfo *)info {
    if (info) {
    // The full card number is available as info.cardNumber, but don't log that!
    NSLog(@"Received card info. Number: %@, expiry: %02i/%i, cvv: %@.", info.redactedCardNumber, info.expiryMonth, info.expiryYear, info.cvv);
    // Use the card info...
  }
  else {
    NSLog(@"User canceled payment info");
    // Handle user cancellation here...
  }

  cardIOView.hidden = YES;
}

Include a method to cancel card scanning:

// SomeViewController.m

- (IBAction)cancelScanCard:(id)sender {
  self.cardIOView.hidden = YES;
}

Hints & Tips

  • Processing images can be memory intensive, so make sure to test that your app properly handles memory warnings.
  • For your users' security, obscure your app's cached screenshots.
    Note: By default, a CardIOPaymentViewController automatically blurs its own screens when the app is backgrounded. A CardIOView does not do any automatic blurring.
  • The first time that you create either a CardIOPaymentViewController or a CardIOView, the card.io SDK must load resources, which can result in a noticeable delay. To avoid this delay you may optionally call [CardIOUtilities preloadCardIO] in advance, so that this resource loading occurs in advance on a background thread.
Comments
  • Bitcode support

    Bitcode support

    Hey,

    CardIO is bundled as a static library without BitCode support. Is there any plan to ship a CardIO build with bitcode enabled?

    As you probably know, watchOS 2 apps require BitCode to be enabled. While cardIO doesn't make a lot of sense in a watch app, it's companion app could require it, and through the magic of shared libraries, the watch app can very easily end up depending on a bitcode-less static lib, which will essentially make it impossible for one to submit to the store.

    enhancement 
    opened by olarivain 49
  • Security Evaluation Questions on card.io

    Security Evaluation Questions on card.io

    Hi card.io Engineers,

    Can you please help answer the following security evaluation questions on card.io?

    1. Does card.io adhere to secure coding practices and conduct vulnerability assessments on its SDKs?
    2. Does card.io conduct penetration testing exercises on its SDKs?
    3. What security assurance does card.io provide to enterprise consumers of the card.io SDKs?
    4. If there is a security flaw/critical fix identified in the current or future versions of the card.io SDK, what communication mechanism does card.io team adopt to help consumers of card.io to stay updated with such fixes/patches?
    5. Does card.io have dynamic integrity check mechanism (like a checksum) to ensure card.io SDK integrity at runtime?
    6. Does the card.io app token have an expiry time to it?
    7. How often does the card.io app token get validated?
    8. Can the card scan operation performed without a network connection from a mobile device?
    9. How does the card.io app token get validated when the mobile device does not have a network connection?

    Thank you!

    question 
    opened by vaspnet 30
  • Card IO: Focus Timing while taking screenshots

    Card IO: Focus Timing while taking screenshots

    Hi Team, I have a question regarding the image capture timing using Card IO for iOS apps. Whenever I try to scan a card, it captures a picture instantly without focusing on it and hence leads to a blurry capture. Is there a way to auto-focus on the card and capture only when there is a clear focussed image?

    Any help is appreciated. Thanks, Bikram.

    question 
    opened by biksappdev 27
  • Use `vendored_libraries`

    Use `vendored_libraries`

    This is the right way to ship a prebuilt library as a Pod. Once CocoaPods/CocoaPods#3859 is merged, this will mean that CardIO also works fine when users are integrating with use_frameworks!

    cc @keith

    opened by neonichu 22
  • framework not found Metal for architecture armv7/armv7s

    framework not found Metal for architecture armv7/armv7s

    Surprising results from the last two builds you've provided (3.8.4, 3.8.5) when building with Xcode 5.1.1 via Cocoapods.

    Even though your spec does not depend on Metal in the spec, the static library clearly depends on it, as seen if you run this:

    otool -arch all -fl libCardIO.a

    Results in output containing the below for each arch:

    ⋮
    Load command 12
     519      cmd LC_LINKER_OPTION
     520  cmdsize 32
     521    count 2
     522   string #1 -framework
     523   string #2 Metal
    ⋮
    
    bug 
    opened by mattyohe 22
  • newbie: integrating paypal and cardio

    newbie: integrating paypal and cardio

    Just posted a question to stack: http://stackoverflow.com/questions/29016665/newbie-need-help-integrating-paypal-ios-sdks-with-card-io

    I am ok implementing cardio scanning, and getting payment card number. However, I need help in sending card details along to paypal to finalize a payment (single payment).

    Paypal provides its own native CC entry form, which obscures the payment card details from my app. This is desirable. However, how can I send the CC details from cardio to paypal, once it's scanned in?

    question 
    opened by stefanbund 20
  • NSRangeException from NSTaggedPointerString on iOS 9

    NSRangeException from NSTaggedPointerString on iOS 9

    I checked by implementing all versions of cardio like version 5.2.2 and 5.1.0 But issues is still persist. In ios 9, CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self]; scanViewController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentViewController:scanViewController animated:YES completion:nil];

    After above lines the app crashes in ios 9 not in ios 8.

    Logs *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[NSTaggedPointerString getCharacters:range:]: Range {0, 7} out of bounds; string length 6' *** First throw call stack: (0x1867a4f5c 0x19acfbf80 0x1867a4ea4 0x18678c4e4 0x1866970d4 0x18678cc90 0x1004e5f0c 0x1866dd124 0x1004e5c58 0x1004e67ac 0x1004e6958 0x1004c0a54 0x18bcfb610 0x18bcfb194 0x18c08a830 0x18c049734 0x18c046294 0x18bfa4828 0x18bfb0dc8 0x18bced1c8 0x18675bc30 0x1867599d4 0x186759e04 0x186688dc0 0x191600088 0x18bd62f44 0x10007d3cc 0x19b51a8b8) libc++abi.dylib: terminating with uncaught exception of type NSException

    bug 
    opened by HimaniM 16
  • Version tags for versions before 3.4.0

    Version tags for versions before 3.4.0

    Hi,

    Can you add versions tags for versions 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, and 3.3.0? These versions of the CardIO library are installable through CocoaPods but are currently referenced by commit hashes, which we would like to convert over to using tags instead. Using tags to reference version numbers is important because it definitively indicates which commits belong to which version.

    Here is an ongoing discussion regarding CardIO's presence in CocoaPods. https://github.com/CocoaPods/Specs/commit/a318bf5f57adbf396f880ce2d41febd5815e265f

    opened by kylefleming 16
  • Feature Request: Increase customizability of UI.

    Feature Request: Increase customizability of UI.

    [Aug 9, 2013: issue title made more general (dgoldman-ebay)]

    It would be great if we had the option to do this. CardIO is great but it doesn't really "fit" with the rest of my app's design. A big win would be if I could specify a custom UINavigationBar subclass.

    For example, UINavigationController offers an API like this:

    initWithNavigationBarClass:[MyCustomNavBar class] toolbarClass:[UIToolbar class]]
    
    opened by nrj 16
  • iOS : Card IO Crashes when app is sent to background

    iOS : Card IO Crashes when app is sent to background

    @dgoldman-ebay , I am running into a scenario where my app crashes when I sent it to the background and open again, while it is on the card capture screen. Below is the crash log, do I need to do any additional handling of closing the session in my VC when app goes to background ?

    * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* Multiple audio/video AVCaptureInputs are not currently supported.'

    Kindly assist.

    question 
    opened by biksappdev 15
  • 5.2.0 has files too big for Github Enterprise

    5.2.0 has files too big for Github Enterprise

    After a pod update I was unable to push my files to my repository because they were well over the 100mb limit that Github has.

    Also an issue in the PayPal SDK here: https://github.com/paypal/PayPal-iOS-SDK/issues/339

    opened by jakedunc 14
  • Can't scan any card

    Can't scan any card

    General information

    • SDK/Library version: 5.4.1
    • iOS Version and Device: iOS 12.1.2 on an iPhone X

    Issue description

    1. I've downloaded the source of this repo.
    2. Opened the ScanExample.xcodeproj and deployed it to the device.
    3. The app starts and CardIOPaymentViewController is opened
    4. Tried numerous cards and didn't get any card detection
    opened by jzeferino 0
  • Not able to add Maestro card

    Not able to add Maestro card

    General information

    • SDK/Library version: 5.4.1
    • iOS Version and Device: iOS 12.0.1 on an iPhone 6s
    • Integration type and version: CocoaPods -1.6.0.beta.1

    Issue description

    Not able to add maestro card with card.io built-in UI. card info Card number - 6304 0000 0000 0000 Expiry - 12/25 CVV - 123

    Please check the attachment. MaestroCardIssue.MP4.zip

    opened by nidhi-compass 4
  • Failed to build in XCode 10 & Swift 4.2

    Failed to build in XCode 10 & Swift 4.2

    General information

    • SDK/Library version: 5.4.1
    • iOS Version and Device: iOS 12. Any device
    • Integration type and version: Cocoapod 1.5.3

    Issue description

    Tried to add CardIO with Cocoapod in XCode 10, Swift 4.2. Seems like it overwrites the Pod project settings so that the build fails because it forces other Pods to build with Swift 4.2.

    Any thoughts?

    Thanks!

    opened by AshleyDeng 2
  • Warning caused by old CardIO

    Warning caused by old CardIO

    General information

    • SDK/Library version: 5.4.1
    • iOS Version and Device: 11.x
    • Integration type and version: Manual

    Issue description

    We're seeing this warning along side the GoogleMaps SDKs:

    ld: warning: Some object files have incompatible Objective-C category definitions. Some category metadata may be lost. All files containing Objective-C categories should be built using the same compiler.
    

    Unfortunately the version of their that reproduces the issue is not public. We're trying to narrow this down, and we're assuming it's possibly caused by the version of Xcode the newest version of CardIO was compiled with (we've been told by Google they're building the SDK that reproduces this with Xcode 9.3.1).

    Is there any way you could provide binaries built with a newer version of Xcode to help us test that theory?

    opened by keith 3
Releases(5.4.1)
  • 5.4.1(Sep 16, 2016)

  • 5.4.0(Sep 16, 2016)

    • Add methods with card.io specific signatures to avoid name collisions ( https://github.com/card-io/card.io-iOS-SDK/issues/201 )
    • Add .m so that CocoaPods will generate CardIO modulemap. Thanks to @keith. ( https://github.com/card-io/card.io-iOS-SDK/pull/210 )
    • Update CardIOViewStream's previewLayer to be CALayer. Thanks to @wisolith. ( https://github.com/card-io/card.io-iOS-source/pull/63 )
    • Update CardIOVideoStream's delegate to be a UIResponder. Thanks to @reidmain. ( https://github.com/card-io/card.io-iOS-source/pull/70 )
    • Remove incorrect warning about suppressScanConfirmation. Thanks to @kballard. ( https://github.com/card-io/card.io-iOS-SDK/issues/217 )
    • Fix warnings when building from source
    Source code(tar.gz)
    Source code(zip)
  • 5.3.2(Apr 11, 2016)

  • 5.3.1(Jan 26, 2016)

    • Prevent an issue with crashes when an invalid IplImage is used for scanning causing an exception to be thrown later in cvGetSize(). ( https://github.com/card-io/card.io-iOS-source/pull/57 )
    Source code(tar.gz)
    Source code(zip)
  • 5.3.0(Dec 21, 2015)

    • Add cardholder name for manual text input. Thanks to Mark Rogers and Martin Rybak for the contribution. ( https://github.com/card-io/card.io-iOS-source/pull/45 )
    • Add option for only numeric input for postal code. ( https://github.com/card-io/card.io-iOS-source/pull/51 )
    Source code(tar.gz)
    Source code(zip)
  • 5.2.2(Nov 3, 2015)

    • You will need to link the Accelerate framework to your application.

    • Fix issue where an app would hang on card-scanning screen ( https://github.com/card-io/card.io-iOS-SDK/issues/153 )

      If an app was displaying the card-scanning screen and was sent to the background, when the app was brought back to the foreground, the app would possibly hang on certain hardware, mainly iPhone 5S.

    • Add Carthage support ( https://github.com/card-io/card.io-iOS-source/pull/36 https://github.com/card-io/card.io-iOS-source/issues/32 )

      Initial support for Carthage. In a Cartfile, you can add github "card-io/card.io-iOS-source" to get Carthage to build a dynamic framework for inclusion in your projects.

    • Fix warning while running in simulator for 5.2.1 ( https://github.com/card-io/card.io-iOS-SDK/issues/154 )

      Add the x86_64 and i386 slices to the OpenCV libraries to prevent warnings. This was also necesary for clean builds for Carthage.

    Source code(tar.gz)
    Source code(zip)
  • 5.2.1(Oct 19, 2015)

    • Split CardIO and OpenCV libraries (https://github.com/card-io/card.io-iOS-SDK/issues/147 and https://github.com/card-io/card.io-iOS-source/issues/41) The library is built with Xcode 7.0 with Bitcode enabled for all 3 libraries. The libraries are now split into 3 static libraries: libCardIO.a, libopencv_core.a, and libopencv_imgproc.a. This split was done to reduce the individual file size to make it more managable for GitHub repositories which limit individual files to 100 MB.

      Note that when an application is "Bitcode compiled" and distributed by the App Store, the app size should not be signficantly increased compared to before Bitcode enablement.

      You must use Xcode 7 since previous versions of Xcode are not fully compatible with Bitcode enabled libraries.

    Source code(tar.gz)
    Source code(zip)
  • 5.2.0(Sep 30, 2015)

    • Enable Bitcode (https://github.com/card-io/card.io-iOS-SDK/issues/119)

      The library is now built with Xcode 7.0. It has Bitcode enabled which does significantly increase the static library. However, when an app is compiled and distributed by the App Store, the app size should not significantly increase compared to before Bitcode enablement. You must also use Xcode 7 since previous versions of Xcode are not fully compatible with Bitcode enabled libraries.

    Source code(tar.gz)
    Source code(zip)
  • 5.1.1(Aug 26, 2015)

  • 5.1.0(Jul 12, 2015)

    • Update project and sample apps for Xcode 6.4.
    • Expose scannedImageDuration in CardIOPaymentViewController. (https://github.com/card-io/card.io-iOS-source/pull/29)
    • Better respect UISupportedInterfaceOrientation from the app plist. (https://github.com/card-io/card.io-iOS-SDK/issues/117)
    • Fix iOS 9 crash by removing some obsolete localization code. (https://github.com/card-io/card.io-iOS-SDK/issues/120)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.6(May 21, 2015)

  • 5.0.5(May 19, 2015)

    • Update Chinese translations for "CVV". (https://github.com/paypal/PayPal-iOS-SDK/issues/278)
    • Update project and sample apps for Xcode 6.3, but build SDK with Xcode 6.2 this one last time to prevent compatibility issues for clients still using Xcode 6.2.
    Source code(tar.gz)
    Source code(zip)
  • 5.0.4(Apr 15, 2015)

    • Check existing video permissions before presenting camera view. (https://github.com/card-io/card.io-iOS-SDK/issues/99)
    • Restrict expiry year manual input to 2 digits in all cases. (https://github.com/card-io/card.io-iOS-SDK/issues/104)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.3(Mar 17, 2015)

    • On scan cancelation, eliminate a visual stutter. (https://github.com/card-io/card.io-iOS-SDK/issues/97)
    • On scan completion, reset camera focus range to nonrestricted. (https://github.com/card-io/card.io-iOS-source/issues/17)
    Source code(tar.gz)
    Source code(zip)
  • 5.0.2(Feb 24, 2015)

  • 5.0.1(Feb 10, 2015)

    • Simplify expiry-scanning code to improve accuracy and also decrease library size a bit.
    • For now, disable expiry-scanning for 32-bit devices (e.g., iPhone 4S).
      • This is because of an apparent compiler bug for which we haven't yet found a workaround.
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Jan 20, 2015)

    • Add automatic expiry-scanning.

      You can disable this feature via the new scanExpiry property of either CardIOView or CardIOPaymentViewController.

      Note: Expiry scans will not infrequently fail to obtain the correct expiry date. We are continuing to work to improve expiry-scanning accuracy.

    • Remove various deprecated properties.

    Source code(tar.gz)
    Source code(zip)
  • 4.0.2(Jan 13, 2015)

    • Fix an iOS 8 display issue involving right-to-left languages. (https://github.com/card-io/card.io-iOS-SDK/issues/90)
    • In the manual-input screen combine Expiry and CVV into a single row, for more languages than before.
    Source code(tar.gz)
    Source code(zip)
  • 4.0.1(Jan 5, 2015)

  • 4.0.0(Dec 1, 2014)

    • Build from the new open-source edition of card.io: https://github.com/card-io/card.io-iOS-source
    • New class: CardIOUtilities
      • libraryVersion (formerly a method of CardIOPaymentViewController)
      • canReadCardWithCamera (formerly a method of CardIOPaymentViewController)
      • preload (formerly a method of CardIOView and of CardIOPaymentViewController)
      • blurredScreenImageView (new method)
    • New property on CardIOCreditCardInfo:
      • cardImage
    • New properties on CardIOView and CardIOPaymentViewController:
      • scanInstructions
      • hideCardIOLogo
      • scanOverlayView
      • detectionMode
    • New notification:
      • CardIOScanningOrientationDidChangeNotification
    Source code(tar.gz)
    Source code(zip)
  • 3.10.1(Nov 5, 2014)

  • 3.10.0(Oct 2, 2014)

    • Eliminate App Token. Developers no longer need to sign up on the card.io site before using card.io.
    • Add Icelandic (is) to our supported localizations. (Thank you, Martin Kaplan!)
    Source code(tar.gz)
    Source code(zip)
  • 3.9.0(Sep 23, 2014)

  • 3.8.7(Sep 16, 2014)

  • 3.8.6(Sep 13, 2014)

  • 3.8.5(Sep 11, 2014)

  • 3.8.4(Sep 11, 2014)

    NOTE: Due to a bug in Xcode 6 (regarding building armv7s slices), you should NOT use this release. Instead, please use version 3.8.5.

    • Build with Xcode 6 GM seed.
    • Update a few localized strings. (including: https://github.com/card-io/card.io-iOS-SDK/issues/65)
    Source code(tar.gz)
    Source code(zip)
  • 3.8.3(Jul 9, 2014)

  • 3.8.2(Jul 3, 2014)

  • 3.8.1(Jun 20, 2014)

Owner
card.io
card.io credit card scanning
card.io
Easily integrate Credit Card payments module in iOS App. Swift 4.0

MFCard Buy me a coffee MFCard is an awesome looking Credit Card input & validation control. Written in Swift 3. YOoo, Now MFCard is on Swift 5. Swift

MobileFirst 362 Nov 29, 2022
A credit card reader and parser for iOS Using Native Vision/VisionKit

card-reader-ios A credit card reader and parser for iOS Using Native Vision/VisionKit May-14-2021.00-43-17.mp4 Instructions Hold camera up to a card a

Khalid Asad 104 Dec 15, 2022
Debit/Credit card validation port of the Luhn Algorithm in Swift

SwiftLuhn Warning! This repository is no longer maintained. This is a port of the Luhn Algorithm, generally used for validating debit/credit card deta

Max Kramer 135 Sep 9, 2022
Luhn Credit Card Validation Algorithm

Luhn Algorithm This is a port of the Luhn Algorithm, generally used for validating Credit Card details, to Objective-C (iOS). Swift port can be found

Max Kramer 127 Nov 27, 2022
CreditCardForm is iOS framework that allows developers to create the UI which replicates an actual Credit Card.

CreditCardForm CreditCardForm is iOS framework that allows developers to create the UI which replicates an actual Credit Card. Fixed typo use CreditCa

Orazz 1.4k Dec 15, 2022
TextFieldFormatter - Simple Text Formatter (Credit Card Number, Phone Number, Serial Number etc.)

TextFieldFormatter Simple Text Formatter (Credit Card Number, Phone Number, Seri

Anıl ORUÇ 4 Apr 4, 2022
A credit card scanner for iOS written in Swift

DGCardScanner A credit card scanner Requirements iOS 13.0+ Swift 5.5+ Xcode 10.0+ Installation SPM File > Add Packages > https://github.com/donggyushi

donggyu 9 Jun 24, 2022
Luhn Credit Card Validation Algorithm

Luhn Algorithm This is a port of the Luhn Algorithm, generally used for validating Credit Card details, to Objective-C (iOS). Swift port can be found

Max Kramer 127 Nov 27, 2022
Accept credit cards and PayPal in your iOS app

Important: PayPal Mobile SDKs are Deprecated. The APIs powering them will remain operational long enough for merchants to migrate, but the SDKs themse

PayPal 973 Dec 18, 2022
Ios-card-transition - iOS CocoaPod to create beautiful card transitions

CSCardTransition CSCardTransition is a small library allowing you to create wond

Creastel 12 Oct 31, 2022
Card Decks is a small utility application for your iPhone, iPod touch and iPad which brings you simple, configurable, colored, multi-line text cards that are grouped into card decks

Card Decks is a small utility application for your iPhone, iPod touch and iPad which brings you simple, configurable, colored, multi-line text cards that are grouped into card decks.

Arne Harren 40 Nov 24, 2022
Easy, drop-in tip jar for iOS apps.

Installation TipJarViewController is available through CocoaPods. To install it, simply add the following line to your Podfile: pod 'TipJarViewControl

Lionheart Software 79 Apr 27, 2022
A Payment Card UI & Validator for iOS

Description Caishen provides an easy-to-use text field to ask users for payment card information and to validate the input. It serves a similar purpos

Prolific Interactive 766 Dec 28, 2022
Bank Card Generator with Swift using SnapKit DSL 💳

iCard BankCard & CreditCard generator with Swift 3 using SnapKit DSL iCard is a simple tool for generate Credit & Bank Card , it represent cards as UI

Emrah Korkmaz 334 Nov 28, 2022
Welcome Busines Card Built With Swift

BusinessCard Welcome Busines Card Main screen Contacts screen More info screen

Konstantin Ryabtsev 0 Dec 28, 2021
A card viewer demo for Idolmaster Millionlive Theater Days written in Swift UI

Misaki Gallery A Millionlive's cards gallery to demostrate Swift UI. All api and

Spike 0 Dec 20, 2021
A study card application built with SwiftUI and Combine

StudyCards Description A study card application. I built this application to get

Matt Manion 2 Sep 26, 2022
Code1System Card Moudle

Code1CardLib Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installation Code1

null 1 Aug 4, 2022
SwiftUI BusinessCard - Created iOS Business card app to practice SwiftUI

SwiftUI_BusinessCard Created iOS Business card app to practice SwiftUI

null 0 Jan 29, 2022