Source code for worldline.connect.sdk.v1.domain.card_fraud_results

# -*- 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.v1.domain.fraud_results import FraudResults
from worldline.connect.sdk.v1.domain.fraud_results_retail_decisions import FraudResultsRetailDecisions
from worldline.connect.sdk.v1.domain.fraugster_results import FraugsterResults


[docs] class CardFraudResults(FraudResults): """ | Details of the card payment fraud checks that were performed """ __avs_result: Optional[str] = None __cvv_result: Optional[str] = None __fraugster: Optional[FraugsterResults] = None __retail_decisions: Optional[FraudResultsRetailDecisions] = None @property def avs_result(self) -> Optional[str]: """ | Result of the Address Verification Service checks. Possible values are: * A - Address (Street) matches, Zip does not * B - Street address match for international transactions—Postal code not verified due to incompatible formats * C - Street address and postal code not verified for international transaction due to incompatible formats * D - Street address and postal code match for international transaction, cardholder name is incorrect * E - AVS error * F - Address does match and five digit ZIP code does match (UK only) * G - Address information is unavailable; international transaction; non-AVS participant * H - Billing address and postal code match, cardholder name is incorrect (Amex) * I - Address information not verified for international transaction * K - Cardholder name matches (Amex) * L - Cardholder name and postal code match (Amex) * M - Cardholder name, street address, and postal code match for international transaction * N - No Match on Address (Street) or Zip * O - Cardholder name and address match (Amex) * P - Postal codes match for international transaction—Street address not verified due to incompatible formats * Q - Billing address matches, cardholder is incorrect (Amex) * R - Retry, System unavailable or Timed out * S - Service not supported by issuer * U - Address information is unavailable * W - 9 digit Zip matches, Address (Street) does not * X - Exact AVS Match * Y - Address (Street) and 5 digit Zip match * Z - 5 digit Zip matches, Address (Street) does not * 0 - No service available Type: str """ return self.__avs_result @avs_result.setter def avs_result(self, value: Optional[str]) -> None: self.__avs_result = value @property def cvv_result(self) -> Optional[str]: """ | Result of the Card Verification Value checks. Possible values are: * M - CVV check performed and valid value * N - CVV checked and no match * P - CVV check not performed, not requested * S - Cardholder claims no CVV code on card, issuer states CVV-code should be on card * U - Issuer not certified for CVV2 * Y - Server provider did not respond * 0 - No service available Type: str """ return self.__cvv_result @cvv_result.setter def cvv_result(self, value: Optional[str]) -> None: self.__cvv_result = value @property def fraugster(self) -> Optional[FraugsterResults]: """ | Results of Fraugster fraud prevention check. Fraugster collects transaction data points such as name, email address, billing, etc. to analyze whether or not the transaction is fraudulent. Type: :class:`worldline.connect.sdk.v1.domain.fraugster_results.FraugsterResults` """ return self.__fraugster @fraugster.setter def fraugster(self, value: Optional[FraugsterResults]) -> None: self.__fraugster = value @property def retail_decisions(self) -> Optional[FraudResultsRetailDecisions]: """ | Additional response data returned by RetailDecisions Type: :class:`worldline.connect.sdk.v1.domain.fraud_results_retail_decisions.FraudResultsRetailDecisions` """ return self.__retail_decisions @retail_decisions.setter def retail_decisions(self, value: Optional[FraudResultsRetailDecisions]) -> None: self.__retail_decisions = value
[docs] def to_dictionary(self) -> dict: dictionary = super(CardFraudResults, self).to_dictionary() if self.avs_result is not None: dictionary['avsResult'] = self.avs_result if self.cvv_result is not None: dictionary['cvvResult'] = self.cvv_result if self.fraugster is not None: dictionary['fraugster'] = self.fraugster.to_dictionary() if self.retail_decisions is not None: dictionary['retailDecisions'] = self.retail_decisions.to_dictionary() return dictionary
[docs] def from_dictionary(self, dictionary: dict) -> 'CardFraudResults': super(CardFraudResults, self).from_dictionary(dictionary) if 'avsResult' in dictionary: self.avs_result = dictionary['avsResult'] if 'cvvResult' in dictionary: self.cvv_result = dictionary['cvvResult'] if 'fraugster' in dictionary: if not isinstance(dictionary['fraugster'], dict): raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['fraugster'])) value = FraugsterResults() self.fraugster = value.from_dictionary(dictionary['fraugster']) if 'retailDecisions' in dictionary: if not isinstance(dictionary['retailDecisions'], dict): raise TypeError('value \'{}\' is not a dictionary'.format(dictionary['retailDecisions'])) value = FraudResultsRetailDecisions() self.retail_decisions = value.from_dictionary(dictionary['retailDecisions']) return self