What's New / Privacy, Security & Identity

What's new in ProximityReader

+35 NewiOS

ProximityReader is Apple's framework for accepting contactless payments and reading mobile identity documents on iPhone using the built-in NFC reader. It covers Tap to Pay payment sessions and verification of presented credentials.

The 27 SDK adds 35 APIs with no deprecations or removals. New types include the CustomerEngagement enum and the MobileDocumentHolderName struct. CustomerEngagementSession gains nested Status, Error, PeerClientType, Event, and Purpose types, plus CustomerEngagement.Status.

New

35
enum

CustomerEngagement

NewiOS
public enum CustomerEngagement
Declaration
public enum CustomerEngagement {

    /// A token that authenticates access to a customer engagement session.
    public struct Token : Sendable {

        /// Creates a customer engagement token.
        ///
        /// This creates a token using the ``PaymentCardReader/Token`` from your payment service provider.
        ///
        /// - Parameters:
        ///   - token: The token from your payment service provider.
        public init(using token: PaymentCardReader.Token)
    }

    /// A predefined set of customer engagement screen states.
    public enum Status : Sendable {

        /// A screen indicating the session is ready for customer interaction.
        case ready

        /// A screen indicating a payment is complete.
        case paymentCompleted

        /// A screen indicating a payment failure.
        case paymentFailed

        /// A screen indicating the checkout is complete.
        case checkoutCompleted

        /// Returns a Boolean value indicating whether two values are equal.
        ///
        /// Equality is the inverse of inequality. For any values `a` and `b`,
        /// `a == b` implies that `a != b` is `false`.
        ///
        /// - Parameters:
        ///   - lhs: A value to compare.
        ///   - rhs: Another value to compare.
        public static func == (a: CustomerEngagement.Status, b: CustomerEngagement.Status) -> Bool

        /// Hashes the essential components of this value by feeding them into the
        /// given hasher.
        ///
        /// Implement this method to conform to the `Hashable` protocol. The
        /// components used for hashing must be the same as the components compared
        /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
        /// with each of these components.
        ///
        /// - Important: In your implementation of `hash(into:)`,
        ///   don't call `finalize()` on the `hasher` instance provided,
        ///   or replace it with a different instance.
        ///   Doing so may become a compile-time error in the future.
        ///
        /// - Parameter hasher: The hasher to use when combining the components
        ///   of this instance.
        public func hash(into hasher: inout Hasher)

        /// The hash value.
        ///
        /// Hash values are not guaranteed to be equal across different executions of
        /// your program. Do not save hash values to use during a future execution.
        ///
        /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
        ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
        ///   The compiler provides an implementation for `hashValue` for you.
        public var hashValue: Int { get }
    }

    /// A token referencing the shopping cart.
    ///
    /// Use this token to make a payment request.
    ///
    public struct ShoppingCartToken : Sendable {
    }

    /// A structure that describes the shopping cart content.
    public struct ShoppingCart : Sendable {

        /// The items in the shopping cart.
        public let items: [CustomerEngagement.ShoppingCart.Item]

Truncated.

extension

CustomerEngagement.Status

NewiOS
extension CustomerEngagement.Status : Equatable
Declaration
extension CustomerEngagement.Status : Equatable {
}
extension

CustomerEngagement.Status

NewiOS
extension CustomerEngagement.Status : Hashable
Declaration
extension CustomerEngagement.Status : Hashable {
}
extension

CustomerEngagementSession.ConsentOption

NewiOS
extension CustomerEngagementSession.ConsentOption : Equatable
Declaration
extension CustomerEngagementSession.ConsentOption : Equatable {
}
extension

CustomerEngagementSession.ConsentOption

NewiOS
extension CustomerEngagementSession.ConsentOption : Hashable
Declaration
extension CustomerEngagementSession.ConsentOption : Hashable {
}
extension

CustomerEngagementSession.Error

NewiOS
extension CustomerEngagementSession.Error : Equatable
Declaration
extension CustomerEngagementSession.Error : Equatable {
}
extension

CustomerEngagementSession.Error

NewiOS
extension CustomerEngagementSession.Error : Hashable
Declaration
extension CustomerEngagementSession.Error : Hashable {
}
extension

CustomerEngagementSession.Event

NewiOS
extension CustomerEngagementSession.Event : Equatable
Declaration
extension CustomerEngagementSession.Event : Equatable {
}
extension

CustomerEngagementSession.Event

NewiOS
extension CustomerEngagementSession.Event : Hashable
Declaration
extension CustomerEngagementSession.Event : Hashable {
}
extension

CustomerEngagementSession.PeerClientType

NewiOS
extension CustomerEngagementSession.PeerClientType : Equatable
Declaration
extension CustomerEngagementSession.PeerClientType : Equatable {
}
extension

CustomerEngagementSession.PeerClientType

NewiOS
extension CustomerEngagementSession.PeerClientType : Hashable
Declaration
extension CustomerEngagementSession.PeerClientType : Hashable {
}
extension

CustomerEngagementSession.Purpose

NewiOS
extension CustomerEngagementSession.Purpose : Equatable
Declaration
extension CustomerEngagementSession.Purpose : Equatable {
}
extension

CustomerEngagementSession.Purpose

NewiOS
extension CustomerEngagementSession.Purpose : Hashable
Declaration
extension CustomerEngagementSession.Purpose : Hashable {
}
struct

MobileDocumentHolderName

NewiOS
public struct MobileDocumentHolderName : Hashable, Sendable

A type that represents the mobile identity document holder's name.

Declaration
public struct MobileDocumentHolderName : Hashable, Sendable {

    /// A string representation of the name.
    ///
    /// If available, this string will be taken directly from the underlying document.
    /// If not, then it will be synthesized by formatting the available name components
    /// from the underlying document.
    public let name: String

    /// A component representation of the name.
    ///
    /// If available, these components will be taken directly from the underlying document.
    /// If not, the components will be derived from the full name String on the underlying document.
    public let components: PersonNameComponents

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: MobileDocumentHolderName, b: MobileDocumentHolderName) -> Bool

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The
    /// components used for hashing must be the same as the components compared
    /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
    /// with each of these components.
    ///
    /// - Important: In your implementation of `hash(into:)`,
    ///   don't call `finalize()` on the `hasher` instance provided,
    ///   or replace it with a different instance.
    ///   Doing so may become a compile-time error in the future.
    ///
    /// - Parameter hasher: The hasher to use when combining the components
    ///   of this instance.
    public func hash(into hasher: inout Hasher)

    /// The hash value.
    ///
    /// Hash values are not guaranteed to be equal across different executions of
    /// your program. Do not save hash values to use during a future execution.
    ///
    /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
    ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
    ///   The compiler provides an implementation for `hashValue` for you.
    public var hashValue: Int { get }
}
let

MobileDocumentDisplayRequest.Element.name

NewiOS
public static let name: MobileDocumentDisplayRequest.Element

The mobile document holder's name.

func

MobileDocumentRequest.driversLicenseRawData

NewiOS
public static func driversLicenseRawData(retaining retainedElements: [MobileDriversLicenseRawDataRequest.Element] = [], notRetaining nonRetainedElements: [MobileDriversLicenseRawDataRequest.Element] = [], issuerIdentifiers: [Data] = []) -> Self

A request which retrieves mobile driver's license elements from the holder and returns the raw response data for processing.

func

MobileDocumentRequest.nationalIDCardRawData

NewiOS
public static func nationalIDCardRawData(region: Locale.Region, retaining retainedElements: [MobileNationalIDCardRawDataRequest.Element] = [], notRetaining nonRetainedElements: [MobileNationalIDCardRawDataRequest.Element] = [], issuerIdentifiers: [Data] = []) -> Self

A request which retrieves mobile national ID card elements from the holder and returns the raw response data for processing.

func

MobileDocumentRequest.photoIDRawData

NewiOS
public static func photoIDRawData(retaining retainedElements: [MobilePhotoIDRawDataRequest.Element] = [], notRetaining nonRetainedElements: [MobilePhotoIDRawDataRequest.Element] = [], issuerIdentifiers: [Data] = []) -> Self

A request which retrieves photo ID elements from the holder and returns the raw response data for processing.

let

MobileDriversLicenseDataRequest.Element.name

NewiOS
public static let name: MobileDriversLicenseDataRequest.Element

The mobile driver's license holder's name.

let

MobileDriversLicenseDataRequest.Response.DocumentElements.name

NewiOS
public let name: MobileDocumentHolderName?

The mobile driver's license holder's name.

let

MobileDriversLicenseDisplayRequest.Element.name

NewiOS
public static let name: MobileDriversLicenseDisplayRequest.Element

The mobile driver's license holder's name.

init

MobileDriversLicenseRawDataRequest.init

NewiOS
public init(retainedElements: [MobileDriversLicenseRawDataRequest.Element] = [], nonRetainedElements: [MobileDriversLicenseRawDataRequest.Element] = [], issuerIdentifiers: [Data] = [])

Returns a mobile driver's license raw data request with issuer identifiers.

var

MobileDriversLicenseRawDataRequest.issuerIdentifiers

NewiOS
public var issuerIdentifiers: [Data]

The subject key identifiers of the issuers trusted by the reader.

let

MobileDriversLicenseRawDataRequest.Element.name

NewiOS
public static let name: MobileDriversLicenseRawDataRequest.Element

The mobile driver's license holder's name.

let

MobileNationalIDCardDataRequest.Element.name

NewiOS
public static let name: MobileNationalIDCardDataRequest.Element

The mobile national ID card holder's name.

let

MobileNationalIDCardDataRequest.Response.DocumentElements.name

NewiOS
public let name: MobileDocumentHolderName?

The mobile national ID card holder's name.

let

MobileNationalIDCardDisplayRequest.Element.name

NewiOS
public static let name: MobileNationalIDCardDisplayRequest.Element

The mobile national ID card holder's name.

init

MobileNationalIDCardRawDataRequest.init

NewiOS
public init(region: Locale.Region, retainedElements: [MobileNationalIDCardRawDataRequest.Element] = [], nonRetainedElements: [MobileNationalIDCardRawDataRequest.Element] = [], issuerIdentifiers: [Data] = [])

Creates a mobile national ID card raw data request with issuer identifiers.

var

MobileNationalIDCardRawDataRequest.issuerIdentifiers

NewiOS
public var issuerIdentifiers: [Data]

The subject key identifiers of the issuers trusted by the reader.

let

MobileNationalIDCardRawDataRequest.Element.name

NewiOS
public static let name: MobileNationalIDCardRawDataRequest.Element

The mobile national ID card holder's name.

let

MobilePhotoIDDataRequest.Element.name

NewiOS
public static let name: MobilePhotoIDDataRequest.Element

The photo ID holder's name.

let

MobilePhotoIDDataRequest.Response.DocumentElements.name

NewiOS
public let name: MobileDocumentHolderName?

The photo ID holder's name.

init

MobilePhotoIDRawDataRequest.init

NewiOS
public init(retainedElements: [MobilePhotoIDRawDataRequest.Element] = [], nonRetainedElements: [MobilePhotoIDRawDataRequest.Element] = [], issuerIdentifiers: [Data] = [])

Returns a photo ID raw data request with issuer identifiers.

var

MobilePhotoIDRawDataRequest.issuerIdentifiers

NewiOS
public var issuerIdentifiers: [Data]

The subject key identifiers of the issuers trusted by the reader.

let

MobilePhotoIDRawDataRequest.Element.name

NewiOS
public static let name: MobilePhotoIDRawDataRequest.Element

The photo ID holder's name.

No APIs match your filter.

← More in Privacy, Security & Identity