Source code for worldline.connect.sdk.v1.domain.external_cardholder_authentication_data
# -*- coding: utf-8 -*-
#
# This class was auto-generated from the API references found at
# https://apireference.connect.worldline-solutions.com/
#
from typing import Optional
from worldline.connect.sdk.domain.data_object import DataObject
[docs]
class ExternalCardholderAuthenticationData(DataObject):
"""
| Object containing 3D secure details.
"""
__acs_transaction_id: Optional[str] = None
__applied_exemption: Optional[str] = None
__cavv: Optional[str] = None
__cavv_algorithm: Optional[str] = None
__directory_server_transaction_id: Optional[str] = None
__eci: Optional[int] = None
__scheme_risk_score: Optional[int] = None
__three_d_secure_version: Optional[str] = None
__three_d_server_transaction_id: Optional[str] = None
__validation_result: Optional[str] = None
__xid: Optional[str] = None
@property
def acs_transaction_id(self) -> Optional[str]:
"""
| Identifier of the authenticated transaction at the ACS/Issuer.
Type: str
"""
return self.__acs_transaction_id
@acs_transaction_id.setter
def acs_transaction_id(self, value: Optional[str]) -> None:
self.__acs_transaction_id = value
@property
def applied_exemption(self) -> Optional[str]:
"""
| When you request an exemptions via your non-Worldline 3D Secure provider successfully, you need to provide in this property the exemption that was granted, in combination with all 3DS results given by issuer.
| Possible values:
* transaction-risk-analysis - You have determined that this transaction is of low risk and are willing to take the liability. Please note that your fraud rate needs to stay below thresholds to allow your use of this exemption.
* low-value - The value of the transaction is below 30 EUR. Please note that the issuer will still require every 5th low-value transaction pithing 24 hours to be strongly authenticated. The issuer will also keep track of the cumulative amount authorized on the card. When this exceeds 100 EUR strong customer authentication is also required.
* whitelist - You have been whitelisted by the customer at the issuer.
Type: str
"""
return self.__applied_exemption
@applied_exemption.setter
def applied_exemption(self, value: Optional[str]) -> None:
self.__applied_exemption = value
@property
def cavv(self) -> Optional[str]:
"""
| The CAVV (cardholder authentication verification value) or AAV (accountholder authentication value) provides an authentication validation value.
Type: str
"""
return self.__cavv
@cavv.setter
def cavv(self, value: Optional[str]) -> None:
self.__cavv = value
@property
def cavv_algorithm(self) -> Optional[str]:
"""
| The algorithm, from your 3D Secure provider, used to generate the authentication CAVV.
Type: str
"""
return self.__cavv_algorithm
@cavv_algorithm.setter
def cavv_algorithm(self, value: Optional[str]) -> None:
self.__cavv_algorithm = value
@property
def directory_server_transaction_id(self) -> Optional[str]:
"""
| The 3-D Secure Directory Server transaction ID that is used for the 3D Authentication
Type: str
"""
return self.__directory_server_transaction_id
@directory_server_transaction_id.setter
def directory_server_transaction_id(self, value: Optional[str]) -> None:
self.__directory_server_transaction_id = value
@property
def eci(self) -> Optional[int]:
"""
| Electronic Commerce Indicator provides authentication validation results returned after AUTHENTICATIONVALIDATION
* 0 = No authentication, Internet (no liability shift, not a 3D Secure transaction)
* 1 = Authentication attempted (MasterCard)
* 2 = Successful authentication (MasterCard)
* 5 = Successful authentication (Visa, Diners Club, Amex)
* 6 = Authentication attempted (Visa, Diners Club, Amex)
* 7 = No authentication, Internet (no liability shift, not a 3D Secure transaction)
* (empty) = Not checked or not enrolled
Type: int
"""
return self.__eci
@eci.setter
def eci(self, value: Optional[int]) -> None:
self.__eci = value
@property
def scheme_risk_score(self) -> Optional[int]:
"""
| Global score calculated by the Carte Bancaire (130) Scoring platform. Possible values from 0 to 99.
Type: int
"""
return self.__scheme_risk_score
@scheme_risk_score.setter
def scheme_risk_score(self, value: Optional[int]) -> None:
self.__scheme_risk_score = value
@property
def three_d_secure_version(self) -> Optional[str]:
"""
| The 3-D Secure version used for the authentication. Possible values:
* v1
* v2
* 1.0.2
* 2.1.0
* 2.2.0
* 2.3
* 2.3.0
* 2.3.1
* 2.3.1.1
Type: str
"""
return self.__three_d_secure_version
@three_d_secure_version.setter
def three_d_secure_version(self, value: Optional[str]) -> None:
self.__three_d_secure_version = value
@property
def three_d_server_transaction_id(self) -> Optional[str]:
"""
| The 3-D Secure Server transaction ID that is used for the 3-D Secure version 2 Authentication.
Type: str
Deprecated; No replacement
"""
return self.__three_d_server_transaction_id
@three_d_server_transaction_id.setter
def three_d_server_transaction_id(self, value: Optional[str]) -> None:
self.__three_d_server_transaction_id = value
@property
def validation_result(self) -> Optional[str]:
"""
| The 3D Secure authentication result from your 3D Secure provider.
Type: str
"""
return self.__validation_result
@validation_result.setter
def validation_result(self, value: Optional[str]) -> None:
self.__validation_result = value
@property
def xid(self) -> Optional[str]:
"""
| The transaction ID that is used for the 3D Authentication
Type: str
"""
return self.__xid
@xid.setter
def xid(self, value: Optional[str]) -> None:
self.__xid = value
[docs]
def to_dictionary(self) -> dict:
dictionary = super(ExternalCardholderAuthenticationData, self).to_dictionary()
if self.acs_transaction_id is not None:
dictionary['acsTransactionId'] = self.acs_transaction_id
if self.applied_exemption is not None:
dictionary['appliedExemption'] = self.applied_exemption
if self.cavv is not None:
dictionary['cavv'] = self.cavv
if self.cavv_algorithm is not None:
dictionary['cavvAlgorithm'] = self.cavv_algorithm
if self.directory_server_transaction_id is not None:
dictionary['directoryServerTransactionId'] = self.directory_server_transaction_id
if self.eci is not None:
dictionary['eci'] = self.eci
if self.scheme_risk_score is not None:
dictionary['schemeRiskScore'] = self.scheme_risk_score
if self.three_d_secure_version is not None:
dictionary['threeDSecureVersion'] = self.three_d_secure_version
if self.three_d_server_transaction_id is not None:
dictionary['threeDServerTransactionId'] = self.three_d_server_transaction_id
if self.validation_result is not None:
dictionary['validationResult'] = self.validation_result
if self.xid is not None:
dictionary['xid'] = self.xid
return dictionary
[docs]
def from_dictionary(self, dictionary: dict) -> 'ExternalCardholderAuthenticationData':
super(ExternalCardholderAuthenticationData, self).from_dictionary(dictionary)
if 'acsTransactionId' in dictionary:
self.acs_transaction_id = dictionary['acsTransactionId']
if 'appliedExemption' in dictionary:
self.applied_exemption = dictionary['appliedExemption']
if 'cavv' in dictionary:
self.cavv = dictionary['cavv']
if 'cavvAlgorithm' in dictionary:
self.cavv_algorithm = dictionary['cavvAlgorithm']
if 'directoryServerTransactionId' in dictionary:
self.directory_server_transaction_id = dictionary['directoryServerTransactionId']
if 'eci' in dictionary:
self.eci = dictionary['eci']
if 'schemeRiskScore' in dictionary:
self.scheme_risk_score = dictionary['schemeRiskScore']
if 'threeDSecureVersion' in dictionary:
self.three_d_secure_version = dictionary['threeDSecureVersion']
if 'threeDServerTransactionId' in dictionary:
self.three_d_server_transaction_id = dictionary['threeDServerTransactionId']
if 'validationResult' in dictionary:
self.validation_result = dictionary['validationResult']
if 'xid' in dictionary:
self.xid = dictionary['xid']
return self