• Get Started
  • Guides
    • 3D Secure
      • 3D Secure Parameters
        • Request Parameters
        • Response Parameters
      • 3D Secure Testing Guide
      • Exemption Management
      • Non-Payment Authentication
      • 3RI authentication
      • Identity Check Insights
    • Tokenization
      • Card-on-File
      • Merchant Advice Code
      • Multi-Acquiring
      • Webhooks
        • Payload
        • Decryption
      • PCI DSS
    • Integrations
      • Emetec Payment Button
        • Emetec Payment Button API
        • Customization
        • Advanced Options
        • Registration Tokens
        • Apple Pay
        • Google Pay
        • Fast Checkout
          • PayPal
          • Amazon Pay
          • Apple Pay
          • Google Pay
        • Mobile Optimization
      • Server-to-Server
        • Registration Tokens
        • Standalone 3D Secure
        • Standalone Exemption
        • DCC
        • Currency Conversion
      • Backoffice
      • MAC Control
      • Subscriptions
      • Smart Retry
      • Mobile SDK
        • First Integration
        • Set Up Your Server
        • Ready-to-Use UI
          • Payment Buttons
          • UI Customization
          • Internationalization
          • Advanced Options
          • Asynchronous Payments
          • Tokenization
          • Card scanning
        • SDK & Your Own UI
          • Asynchronous payments
          • Tokenization
          • Bin detection
        • Brand configurations
          • Apple Pay
          • Google Pay
          • Klarna Payments
          • Samsung Pay
          • YooKassa
        • 3D Secure 2
        • FraudForce
        • Error Codes
      • Reporting
        • Transaction Reports
        • Settlement Reports
    • References
      • API Reference
        • Basic Payment
        • Forex
        • Authentication
        • Card Account
        • Apple Pay
        • Virtual Account
        • Bank Account
        • Token Account
        • Customer
        • Billing Address
        • Merchant Billing Address
        • Shipping Address
        • Merchant Shipping Address
        • Corporate
        • Sender
        • Recipient
        • Merchant
        • Marketplace & Cart
        • Airline
        • Lodging
        • Passenger
        • Tokenization
        • Recurring Migration
        • 3D Secure
        • Custom Parameters
        • Async Payments
        • Webhook notifications
        • Job
        • Risk
        • Response Parameters
        • Card On File
        • Chargeback
      • Result Codes
      • Transaction Flows
      • Regression Testing
      • Release Notes
      • Accessibility Compliance
    • Support
      • Emetec Payment Button
      • Features
      • Going Live
      • TLS
      • Enhanced Endpoint
      • Supported Browsers
      • Webhooks
    • Payment Hub
    Home
    Logout
    DeveloperPortal


    Card scanning

    Our checkout UI supports camera-based card number recognition.

    Card Scanning via NFC

    Our checkout UI supports card scanning using NFC to extract card details from a contactless card.

    This feature is enabled by default and can be disabled if needed.

    By default card scan is shown in ready-to-use UI. Since version 5.2.0, you can enable or disable this option by setting boolean property cardScanButtonAvailable of OPPCheckoutSettings class.

    Objective-C Swift
    OPPCheckoutSettings *checkoutSettings = [[OPPCheckoutSettings alloc] init];
    checkoutSettings.cardScanButtonAvailable = NO;
    let checkoutSettings = OPPCheckoutSettings()
    checkoutSettings.cardScanButtonAvailable = false
    Java Kotlin
    checkoutSettings.setCardScanningEnabled(false);
    checkoutSettings.isCardScanningEnabled = false

    How It Works

    Store payment details during payment
    • Tap the contactless card icon in the card number input field.
    • Hold the contactless card near the device’s NFC reader.
    • Follow the on-screen instructions to complete the scan.
    • The card number and expiration date will be filled in automatically.

    NOTE: This feature uses NFC to read the card number and expiration date from a contactless card and automatically populates them into the card payment form. It does not perform an EMV transaction or support card-present processing.

    How It Works

    Store payment details during payment

    Card number and expiration date can be scanned with your phone camera, saving you from having to key in your digits manually.

    • Tap the camera icon in the card number field to scan the card.
    • For the first time the app will request access to the camera.
    • Then position your card and it will scan card number and expiration date.

    You will still need to manually enter card holder and CVV code.

    Integration

    Follow the steps below:

    1. If you upgrading from previous version of mSDK make sure to remove OPPWAMobile-CardIO.xcframework from Frameworks folder.
    2. Provide usage descriptions in your app's Info.plist
      • NSCameraUsageDescription - 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.
      • NSPhotoLibraryUsageDescription - Card.IO never asks for this key actually, however it's needed when uploading to App Store. Set any non-empty string, e.g. duplicate NSCameraUsageDescription description.