Vulnerabilities
Introduction
The Vulnerabilities service allows you to retrieve and update a customer's recorded vulnerabilities within your mobile application.
Vulnerable customers are individuals who, due to personal circumstances, are especially susceptible to detriment, particularly when a firm is not acting with appropriate levels of care.
These circumstances are grouped into three categories:
- Health — physical or mental health conditions that affect the customer's decision-making capabilities or day-to-day functioning, such as a physical disability, low mental capacity, or a gambling addiction.
- Competence — low financial literacy, poor language skills, or limited digital ability that make navigating financial decisions more challenging.
- Life — temporary or situational factors, such as caring responsibilities, bereavement, or geographic exposure to fraud, which can temporarily impair judgment or financial stability.
In addition to the categorised vulnerabilities, the customer can describe any further support or accessibility requirements in plain text via additionalSupportNeeds.
Key Features:
- Get the customer's recorded vulnerabilities grouped by category.
- Update the customer's vulnerabilities.
Prerequisites
Before integrating the Vulnerabilities service, ensure you have:
- A valid Paysafe account with appropriate permissions.
- Set up the Paysafe SDK as described here: Android or iOS.
To get started, initialize the VulnerabilitiesService instance in your app as shown below:
- Kotlin
- Swift
import com.paysafe.wallet.android.core.wallet.Wallet
val vulnerabilitiesService = Wallet.getInstance().getVulnerabilitiesService()
import PaysafeWallet
let vulnerabilitiesService = Wallet.instance.vulnerabilitiesService
Functionalities
Get Customer Vulnerabilities
- Kotlin
- Swift
Use the get method to retrieve the customer's recorded vulnerabilities grouped by category - CustomerVulnerabilities.
try {
val vulnerabilities = vulnerabilitiesService.get()
// Display vulnerabilities
} catch (exception: Exception) {
// Handle exception
}
Use the get method to retrieve the customer's recorded vulnerabilities grouped by category - CustomerVulnerabilities.
vulnerabilitiesService.get(completion: { result in
switch result {
case .success(let vulnerabilities):
// Display vulnerabilities
case .failure(let error):
// Handle error
}
})
Update Customer Vulnerabilities
Only the categories and fields you provide are modified; omitted ones are left unchanged. The request is accepted only if at least one property is modified.
- Kotlin
- Swift
Use the update method to update the customer's vulnerabilities by providing a CustomerVulnerabilities object.
val vulnerabilities = CustomerVulnerabilities(
health = HealthVulnerabilities(
physicalDisability = true,
lowMentalCapacity = false,
gamblingAddiction = false
),
competence = CompetenceVulnerabilities(
financeManagement = false,
poorLiteracy = true,
poorLanguageSkills = false,
poorDigitalSkills = false
),
life = LifeVulnerabilities(
caringResponsibilities = true,
fraudulentLocation = false
),
additionalSupportNeeds = "Please use plain language in all communications."
)
try {
val updatedVulnerabilities = vulnerabilitiesService.update(vulnerabilities)
// Display updated vulnerabilities
} catch (exception: Exception) {
// Handle exception
}
Use the update method to update the customer's vulnerabilities by providing a CustomerVulnerabilities object.
let vulnerabilities = Wallet.CustomerVulnerabilities(
health: .init(physicalDisability: true,
lowMentalCapacity: false,
gamblingAddiction: false),
competence: .init(financeManagement: false,
poorLiteracy: true,
poorLanguageSkills: false,
poorDigitalSkills: false),
life: .init(caringResponsibilities: true,
fraudulentLocation: false),
additionalSupportNeeds: "Please use plain language in all communications."
)
vulnerabilitiesService.update(vulnerabilities: vulnerabilities, completion: { result in
switch result {
case .success(let updatedVulnerabilities):
// Display updated vulnerabilities
case .failure(let error):
// Handle error
}
})
Error Handling
Both the get and update methods throw a WalletException (Android) or WalletError (iOS) when the Paysafe Wallet API returns an error. For the full list of error types and recommended handling patterns, see the Error Handling guide.
You can also review and update the customer's broader personal information through the Profile Information service.