Customer Data Verification
Introduction
The Customer Data Verification Service simplifies the verification of customer phone numbers and email addresses, ensuring accuracy and security.
Key Features
- Offers a reliable way to verify customer phone numbers and email addresses.
- Ensures secure and efficient validation to maintain data accuracy.
Prerequisites
Before integrating the Customer Data Verification Service, ensure you have:
- A valid Paysafe account with appropriate permissions.
- Set up instructions for Paysafe SDK Android or iOS.
To get started, initialize the CustomerDataVerificationService
instance in your app as shown below:
- Kotlin
- Swift
import com.paysafe.wallet.android.core.wallet.Wallet
val customerDataVerificationService = Wallet.getInstance().getCustomerDataVerificationService()
import PaysafeWallet
let customerDataVerificationService = Wallet.instance.customerDataVerificationService
Customer Data Verification Workflow Overview
Customer Data Verification Steps:
To verify customer data, you will follow a two-step process: initiating data verification and submitting data verification. Each method plays a specific role in the verification workflow. Here's an explanation of what each method does:
Step 1: Initiate Data Verification
Use initiateDataVerificationProcess
method to initiate a verification process for a specific customer attribute, such as email
or mobile
.
- Kotlin
- Swift
The method requires an object of type CustomerDataVerificationRequest and returns an object of type CustomerDataVerificationResponse.
val emailDataVerificationRequest = CustomerDataVerificationRequest(
CustomerDataVerificationAttribute(
CustomerDataVerificationAttributeType.EMAIL,
"john.doe@paysafe.com"
),
CustomerDataVerificationFlow.WALLET_SETUP
)
try {
val emailDataVerificationResponse = customerDataVerificationService.initiateDataVerificationProcess(emailDataVerificationRequest)
// Handle emailDataVerificationResponse
} catch (exception: Exception) {
// Handle exception
}
The method requires an object of type CustomerDataVerificationRequest and returns an object of type CustomerDataVerificationResponse.
let emailDataVerificationRequest = Wallet.CustomerDataVerificationRequest(
attribute: Wallet.CustomerDataVerificationAttribute(
type: .email,
value: "john.doe@paysafe.com"
),
flow: .walletSetup
)
customerDataVerificationService.initiateDataVerificationProcess(
request: emailDataVerificationRequest,
completion: { result in
switch result {
case .success(let emailDataVerificationResponse):
// Display status
case .failure(let error):
// Handle error
}
}
)
Step 2: Submit a customer data verification attempt
Use submitDataVerificationAttempt
method to submit a verification attempt for a specific customer attribute tied to an already initiated verification process.
The submitDataVerificationAttempt
method requires a verificationId
. Use the verificationId
returned within the CustomerDataVerificationResponse
object from the previous step.
- Kotlin
- Swift
The method requires an object of type CustomerDataVerificationAttemptRequest and returns an object of type CustomerDataVerificationAttemptResponse.
val dataVerificationAttemptRequest = CustomerDataVerificationAttemptRequest(
attribute = CustomerDataVerificationAttribute(
type = CustomerDataVerificationAttributeType.EMAIL,
value = "john.doe@example.com"
),
notificationType = CustomerDataVerificationNotificationType(
method = CustomerDataVerificationNotificationMethod.OTP,
channel = CustomerDataVerificationNotificationChannel.EMAIL
),
value = "123456"
)
try {
val dataVerificationAttemptResponse = customerDataVerificationService.submitDataVerificationAttempt(
emailDataVerificationResponse.verificationid,
dataVerificationAttemptRequest
)
// Handle dataVerificationAttemptResponse
} catch (exception: Exception) {
// Handle exception
}
The method requires an object of type CustomerDataVerificationAttemptRequest and returns an object of type CustomerDataVerificationAttemptResponse.
let dataVerificationAttemptRequest = Wallet.CustomerDataVerificationAttemptRequest(
attribute: CustomerDataVerificationAttribute(
type: .email,
value: "john.doe@paysafe.com"
),
notificationType: CustomerDataVerificationNotificationType(
method: .otp,
channel: .email
),
value: "123456"
)
customerDataVerificationService.submitDataVerificationAttempt(
verificationId: emailDataVerificationResponse.verificationId,
request: dataVerificationAttemptRequest,
completion: { result in
switch result {
case .success(let dataVerificationAttemptResponse):
// Display status
case .failure(let error):
// Handle error
}
}
)