iOS SDK - Customer/User Registration Objects

Customer/User Domain Objects

PDAddressInformation

The address information object contains the set of properties that define the registered address of the mobile wallet owner.

Property Description
state String
The U.S. state of the wallet owner’s registered address, if applicable.
The default PDMetaData values for this property are:
@Key = STATE
@Value = This must not be null/empty if required.
@Name = State
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = YES
@Can be used while updating = YES
country String
The country of the wallet owner’s registered address. The default PDMetaData values for this property are:
@Key = COUNTRY
@Value = This must not be null/empty if required.
@Name = Country
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = YES
@Can be used while updating = YES
addressLine1 String
The first line of the wallet owner’s registered address. The default PDMetaData values for this property are:
@Key = ADDRESS_LINE1
@Value = This must not be null/empty if required.
@Name = Address Line 1
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = YES
@Can be used while updating = YES
addressLine2 String
The second line of the wallet owner’s registered address.
The default PDMetaData values for this property are:
@Key = ADDRESS_LINE2
@Value = This must not be null/empty if required.
@Name = Address Line 2
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = YES
@Can be used while updating = YES
city String
The city of the wallet owner’s registered address. The default PDMetaData values for this property are:
@Key = CITY
@Value = This must not be null/empty if required.
@Name = Cit
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = YES
@Can be used while updating = YES
zipCode String
The U.S. postal code of the wallet owner’s registered address. The default PDMetaData values for this property are:
@Key = ZIP_CODE
@Value = This must not be null/empty if required.
@Name = Zip Code
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 5
@Can be used to create = YES
@Can be used while updating = YES

PDContactInformation

The various means by which the mobile wallet owner can be contacted.

Property Description
email String
The primary email address of the registered wallet owner. The default PDMetaData values for this property are:
@Key = EMAIL
@Value = This must not be null/empty if required.
@Name = Email
@Type = NSString
@Is Required = N
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = YES
@Can be used while updating = YES
phone String
The primary phone number of the registered wallet owner. The default PDMetaData values for this property are:
@Key`` = MOBILE_PHONE
@Value = This must not be null/empty if required.
@Name= Phone
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = YES
@Can be used while updating = YES
addressInformation PDAddressInformation
Defines the mailing address of the wallet user.

PDCustomer

The personal profile data for a registered wallet owner.

Property Description
customerUri String
Paydiant’s unique system identifier for the wallet owner.
customerIdentification String
An alternate identifier for the wallet owner for systems that cannot handle a URI value.
externalId String
A unique identifier used to distinguish the user in an external system, such as an analytics engine, that may segment users based on demographics data.
customerId String
Deprecated in SDK 6.2 and replaced by customerIdentification.
active Boolean
Specifies the activation state of the wallet account.
firstName String
The first name of the wallet owner.
lastName String
The last name of the wallet owner.
username String
The username login credential for the wallet.
lastModifiedDate NSDate
The last time that any of the properties of this profile was updated.
contactInformation PDContactInformation
The properties that provide the wallet owner’s contact information.
additionalCustomerInformation Dictionary
A set of key/value definitions that provide information relevant to the user that is not otherwise captured. For example, the user’s opt-in status for channel-specific contact:
- opt_in_email = false
- opt_in_sms = true

PDAdditionalCustomerInformation

A key/value pair that defines a custom user profile property that is not captured by Paydiant.

Property Description
additionalCustomerInformationKey String
The name of the metadata property that this object represents; for example, email_format.
additionalCustomerInformationValue String
The value ascribed to this property for the particular provisioned account; for example, HTML.

PDMFASecurityProfile

A key/value pair that defines a single question from the pool of supported MFA questions defined by the issuer for which the user has provided an answer.

Property Description
answer String
The answer to the question as input by the user.
question String
An MFA question selected and answered by the user.

PDMFAToken

The set of properties that identify the question and answer used to register the device associated with the wallet account.

Property Description
mfaSecretQuestion String
The secret question submitted by the server upon detection that the device from which login was requested is not registered.
mfaSecretAnswer String
The answer to the secret question input by the user.
encryptedFingerPrint PDFingerprint
The encrypted value of the device fingerprint, as encoded in the unexposed PDFingerprint domain class of the SDK.
mfaChallenge1 String
The first question for which the wallet owner provided an answer in the wallet registration.
mfaChallenge2 String
The second question for which the wallet owner provided an answer in the wallet registration.
mfaChallenge3 String
The third question for which the wallet owner provided an answer in the wallet registration.

PDMFAQuestionWithMetadata

A single instance of a question that is available as a secondary security question to which a wallet user may provide an answer for their account profile. The wallet issuer may define an unlimited number of these questions, although the typical variety is between 10 and 15.

Property Description
mfaQuestion String
A personal question to which the user may submit a response that only he knows for the purpose positive identification in addition to or in lieu of a password or PIN value.
isMandatory Boolean
Specifies whether the user is required to submit an answer for this particular question.
isNewQuestion Boolean
Identifies whether the question is one for which the wallet user has provided a response. If TRUE, the question has NOT been answered and therefore should not be used for secondary authentication.

PDUserPasscodeConfigurations

The properties that define the wallet issuer’s PIN validation requirements.

Property Description
validationEnabled Boolean
Determines if validation should be performed on the PIN value as it is entered into the form in the app.
allowSameValues Boolean
Specifies if the passcode may contain identical sequential digits, such as 7788.
allowIncrementalValues Boolean
Specifies if the passcode may contain sequential digits that are in order, such as 1234.
numericOnly Boolean
Specifies if the passcode is required to contain only numerical digits with no letters or symbols.
length Integer
Represents the exact number of digits required for the passcode value.
regularExpression String
The set of characters in regular expression format of the complete list of characters that are supported in the passcode and against which new passcode settings will be validated. If a user inputs a proposed passcode that contains characters not represented here, the passcode will be rejected as invalid. For example: a-zA-Z0-9~!@#$%^&*()-{}.

PDUserPasswordConfigurations

The user password object contains the set of properties that define the wallet issuer’s password validation requirements.

Property Description
required Boolean
Determines if the password field can be empty. A value of TRUE indicates that a password value is compulsory.
requiredLowerCaseCharacters Boolean
Specifies if the password value is required to contain at least one lower case character. The default value is FALSE.
requiredUpperCaseCharacters Boolean
Specifies if the password value is required to contain at least one upper case character. The default value is FALSE.
requiredNumericCharacters Boolean
Specifies if the password value is required to contain at least one numeral. The default value is FALSE.
validCharacters String
A regular expression format of the complete list of characters that are valid within the password string. Any characters not represented here will be considered illegal and any password containing one or more illegal characters will be rejected as non-compliant. For example: a-zA-Z0-9~!@#$%^&*()-{}.
passwordMinLength Integer
The fewest number of characters permitted for a valid password value. The default value is 6.
passwordMaxLength Integer
The maximum number of characters permitted for a valid password value. The default value is 12.

PDUserProfile

The wallet owner’s registration profile values, which can be updated through the app.

Property Description
firstName String
The first name of the wallet owner.
lastName String
The last name of the wallet owner.
email String
The email address value for the registered wallet, which is used as a primary identifier for the user. If this value is updated, a verification link is emailed to the new address and a notification is emailed to the previous address. The new address will not be active until verification is completed.
password String
The password value for the registered wallet against which the value entered by the user at login is validated.
confirmPassword String
The confirm password value for the registered wallet against which the value entered by the user at login is validated.
passcode String
The passcode value for the registered wallet against which the value entered by the user at login is validated.
confirmPasscode String
The confirm passcode value for the registered wallet against which the value entered by the user at login is validated.
mfaAnswers Dictionary
The set of definitions matching the wallet owner’s secret question responses, where the value is the question and the key is the response. When an MFA challenge is triggered, the response from the user will be validated against the relevant key from this property.
phone String
The primary phone number of the registered wallet owner. The default PDMetaData values for this property are:
@Key = MOBILE_NUMBER
@Value = This must not be null/empty if required.
@Name = Mobile Number
@Type = NSString
@Is Required = NO
@Minimum Length = 0
@Maximum Length = 50
@Can be used to create = NO
@Can be used while updating = NO
additionalCustomerInformation Dictionary
A set of key/value definitions that provide information relevant to the user is not otherwise captured. For example, the user’s opt-in status for channel-specific contact:
- opt_in_email=false
- opt_in_sms=true
externalId String
A unique identifier by which the user is distinguished in a relevant external system such as an analytics engine that may segment users based on demographics data.

PDCustomerProfileMetaDataAdditionalData

A key/value pair that defines a custom metadata property that extends the user profile.

Property Description
additionalDataKey String
The name of the metadata property that this object represents; for example, gender.
additionalDataValue String
The value ascribed to this property for the particular provisioned account; for example, F.

PDPaydiantContext

Defines the fingerprint of the mobile wallet application that is running on a particular device at the time that the SDK is initialized on that device.

Property Description
applicationSignature String
The 36-character alpha-numeric UUID generated by the wallet issuer to uniquely identify the particular instance of the mobile wallet app.
Note: App developers are advised to:
- Use CFUUID to generate the application signature
- Maintain different application UUIDs for production and test environments.
- Rotate UUIDs of incremental releases as a hightened security practice.
This value is required for your application. If omitted, the SDK will throw an exception for all attempted calls.
applicationVersion String
The specific build version of the mobile wallet app. This value should follow Paydiant’s SDK version format, where:
a = major version (annual)
b = minor version (monthly)
c = hotfix reference (0= normal; 1 = hotfix)
d = internal build iteration
e = device OS (i= iOS; a= Android)
collectStatistics Boolean
Specifies whether the app is enabled to record login statistics.
deviceTypeId String
The unique identifier for the type of device on which the app is installed.
deviceID String
The unique identifier for the iOS device that is registered with a mobile payments app.
apiKey String
An internal identifier used by Paydiant that is not applicable to the app developer.
encryptionSettings Dictionary
Defines how login credential values are handled by the wallet app. If enabled, Boolean-compatible values must be supplied for the following keys:
- kEncryptPin
- kEncryptPassword
- kEncryptMFASecretAnswer
- kCaseInsensitiveMFASecretAnswer.
hostPort String
The port through which the app connects, if applicable.
hostProtocol String
The connection protocol used by the app to connect to the Paydiant server. For example, http.
ipAddress String
The Internet routing identification for the device’s network service.
locationLoggingEnabled Boolean
Specifies if the app appends logged messages with the location coordinates of the app at the time the logged event occurred. The default value for this property is FALSE.
paydiantSDKVersion String
The SDK software release on which the mobile wallet app is running.
userErrorMessages Dictionary
An instance of PDUserErrorMessageCollection with the set of messages defined by the app developer to display in the wallet app for each error code represented in the SDK. This is a mandatory parameter that must be set at the time of SDK instantiation.

Customer/User Message Objects

The following message objects contain the metadata that is specific to calls made to the UserEnrollmentCoordinator.

PDRegisterUserRequest

Retrieves the information necessary to create a new wallet registration that is managed within the Paydiant platform.

Property Description
userProfile PDUserProfile
Contains the values input by the user as required by the registration process.

PDRegisterUserResponse

Returns the information necessary to create a new wallet registration that is managed within the Paydiant platform

Property Description
nonce String
A temporary access token that is expected to be passed with the loginByNonce method to allow the app instance verification to complete. This verification is an extension of the email verification process for new registrations. The code must be passed within the duration configured by the issuer during onboarding. If login is not completed during this window, the user is forced to complete a second verification to complete the registration and then log into the app.
customerUri String
The Paydiant-generated unique identifier for the wallet user profile.
message String
The raw data returned by the mobile gateway.

PDRegisterCustomerRequest

Retrieves the information required to create a new wallet registration that is managed in an external repository managed by the issuer. In this case, authentication is handled through the SSO framework.

Property Description
mfaSecurityProfiles Array
The set of PDMFASecurityProfile instances, each of which includes a question and answer pair for one of the issuer-defined MFA security questions to which the user has provided a response.
additionalCustomerInformation Array
The set of PDAdditionalCustomerInformation instances for the properties required by the issuer for new registrations.
address PDAddressInformation
Defines the wallet user’s postal address.
email String
The email address for the user registering the wallet.
firstName String
The wallet user’s first name.
lastName String
the wallet user’s last name.
passcode String
The login PIN input by the user.
phone String
The wallet user’s contact phone number.
nonce String
The one-time access token provided by the issuer in order to register a new user.
externalId String
The unique identifier used to distinguish the user in a relevant external system such as an analytics engine that may segment users based on demographic data.

PDRegisterCustomerResponse

Returns the information required to create a new wallet registration that is managed in an external repository managed by the issuer.

Property Description
nonce String
A one-time access token that is expected to be passed with the loginByNonce method for the first login by the new user.
customerUri String
The Paydiant-generated unique identifier for the wallet user profile.
additionalCustomerInformation Array
The set of PDAdditionalCustomerInformation instances confirming the additional property values that were captured for the user.

PDRetrieveCustomerProfileMetaDataRequest

Passes the values required to authenticate the device with the external identity provider (IDP) in order to retrieve the profile information associated with the user.

Property Description
authorizationCode String
The code assigned by the issuer at the time of registration with the external IDP that allows Paydiant to access the user’s profile through the SSO framework.
identityProvider String
The external party through which authentication of the user credentials is validated.
additionalInformation Array
A set of PDCustomerProfileMetaDataAdditionalData instances identifying the properties for which values are being requested.

PDRetrieveCustomerProfileMetaDataResponse

Returns the values required to authenticate the device with the external identity provider (IDP) in order to retrieve the profile information associated with the user.

Property Description
authorizationCode String
A code assigned by the issuer that allows Paydiant to access the new user’s profile through the SSO framework.
customerInfoJson String
The raw JSON string that defines the attributes that make up the user profile in the external system. Paydiant does not parse this value.
isCustomerSecurityProfileExists Boolean
Specifies whether the wallet user has provided responses to any MFA questions.
nonce String
A one-time access token provided by the issuer that is expected in the registerCustomer request.
deviceUniqueId String
The unique identifier for the iOS device that is registered with the mobile payments app.
deviceType String
The type of iOS device associated with the wallet registration; for example, iPad or iPhone.
identityProvider String
The external party through which authentication of the user credentials is validated.
additionalInformation Array
The set of PDCustomerProfileMetaDataAdditionalData instances that pass the values for properties that were listed in the request.

PDRetrieveMFAQuestionsWithMetadataResponse

Returns the set of questions that are available for selection as secondary identification values so the app developer can display them during the wallet registration or update process.

Property Description
mfaQuestions Array
A set of string values representing the pool of questions available for selection and response submission. This set of questions does not include any additional specifications and is included in the response for compatibility with questions defined before the metadata questions were introduced.
numberOfRequiredQuestions Integer
Specifies the number of questions from the set for which the user must submit a response in order to register. The app developer should design the screen accordingly.
mfaQuestionsWithMetadata Array
The set of PDMFAQuestionWithMetadata that represents the pool of questions from which the user can choose, along with additional information about each question’s requirement and creation status.