Customer Data Exchange
The customer data exchange feature (CDE) enables the merchants to retrieve data of the customer’s ‘PaysafeCard account’ account during a deposit.
This data can be only returned if the deposit was completed with an account. For account-less payments, no account details can be provided.
Feature activation process overview
The customer details are only provided after the completion of the internal feature onboarding process. This process must be started by your account manager. The steps of this process are:
- Signing the contractual addendum
- Integration on the test system
- User acceptance test on the test system conducted by the PaysafeCard team
- Testing the different use cases
- Testing the customer data change process
- Testing the customer error messages
- Provide PaysafeCard with the comparison logic
- This helps our customer care to guide the customer in case of a data mismatch
- Switch to the productive system
- After the testing was successful, PaysafeCard will enable the feature on production
Data exchange fields
The following parameter can be requested and returned:
| Parameter name | Format | Descriptions | Example value |
|---|---|---|---|
| psc_id | Number | Returns the 12-digits long PaysafeCard customer ID. This ID identifies the customer uniquely. | 401258316218 |
| first_name | String | Returns the first name of the customer. In case the customer has a second first name, it will be provided in the same field, separated by a space. | Max Michael |
| last_name | String | Last name of the customer. | Mustermann |
| account_created | Date and time | Returns the timestamp of the customer account creation. yyyy-MM-dd HH:mm:ss | 2020-01-01 10:11:06 |
| date_of_birth | Date | Returns the customer's date of birth. yyyy-MM-dd | 1999-01-01 |
| String | The email address of the customer. | max.mustermann@hotmail.com |
Character normalization
Following industry standards, the data provided will NOT be normalized before it is returned in the responses. The character normalization is to be done by the business partner.
Technical integration flow
- Transaction created & redirected to the payment panel
- Customer pays for the transaction with a ‘PaysafeCard account’
- The customer details are returned to the business partner in
- RetrievPaymentDetails and in all API responses
- The business partner compares the data
- If the data matches, the transaction can be completed.
- Completing the transaction is done with capturing
- If the data does not match, the transaction must be actively declined.
- Cancelling a transaction is done with a Delete request
- If the data matches, the transaction can be completed.
- Or if the business partner's goal was to save the details for a payout they store them and complete the transaction.
- The customer sees a result message based on the result of the comparison This message must be shown on the success_url
- If the data are matching, the customer must a success message
- If the data are not matching, the customer must see an error message.
- If the transaction was cancelled, the status can be requested via retrievPaymentDetails (State: CANCELLED_MERCHANT)
Error Handling
It is crucial that the customer is able to resolve the issue by themselves. Therefore, please integrate a clear error message in case the transaction gets declined.
Error message for the customer
| Case | Error Message |
|---|---|
| First name does not match | “Your transaction got declined. The reason is that during the data comparison with PaysafeCard, the first name was not matching. The first name must match in both systems.First name at PaysafeCard: Max. First name to compare: Maximillian. Please change your first name here and retry the payment.“ |
| Last Name does not match | “Your transaction got declined. The reason is that during the data comparison with PaysafeCard, the last name was not matching. The last name must match in both systems. Last name at PaysafeCard: Mustermann. Last name to compare: Must. Please change your last name here and retry the payment.“ |
| Date of birth does not match | “Your transaction got declined. The reason is that during the data comparison with PaysafeCard, your data or birth was not matching. The date of birth must match in both systems. Date of birth at PaysafeCard: 1988-01-01. Date of birth to compare: 1988-07-23. Please change your date of birth here and retry the payment.“ |
Process of changing customer details
It is Important that the customers are able to change their personal details in order to resolve the data mismatch. Therefore, please provide us with a short process of “how to change the customer details”. This question will be part of the UAT. Ideally the customer receives further instructions on how to change the data with the error messages.
Data comparison
Data Mismatch tolerance
Please consider implementing a tolerance logic to match very similar names. Our recommendation is to implement the “Levenshtein distance” with a threshold of 90%
Data comparison examples
Please consider testing the following test cases during the integration:
- First name and last name
Customer may include their middle name as part of their first name. The first name and last name can contain special characters.
| Case | Example |
|---|---|
| ss => ß | Max Mussterman => Max Mußterman |
| Middle name | Johannes Kerner => Johannes B. Kerner |
| à è ò | Johannes Bàuer => Johannes Bauer |
- Date of birth
The format of the Date of Birth may be different from the way PaysafeCard stores it. PaysafeCard always provides the date of birth in this format: YYYY-MM-DD Example: 2002-09-23