Usage examples
Examples to use with the Fraud Prevention SDK for Python to implement common workflows
Expand All
|
Collapse All
OrderPurchaseScreen
Request object
{
"transaction": {
"site_info": {
"country_code": "USA",
"agent_assisted": false
},
"device_details": {
"device_box": "TrustWidget",
"ip_address": "5.5.5.5"
},
"customer_account": {
"account_type": "STANDARD",
"name": {
"last_name": "Expedia",
"first_name": "Sally"
},
"email_address": "riskrtest@expedia.com"
},
"transaction_details": {
"order_id": "33322220004",
"current_order_status": "IN_PROGRESS",
"order_type": "CREATE",
"travel_products": [
{
"price": {
"value": 100.0,
"currency_code": "USD"
},
"type": "CAR",
"inventory_type": "InventoryType",
"inventory_source": "AGENCY",
"travelers_references": [
""
],
"pick_up_location": "pick up location",
"drop_off_location": "drop off location",
"pickup_time": "2020-04-15T08:00:00-07:00",
"return_time": "2020-04-08T07:30:00-07:00"
}
],
"travelers": [
{
"traveler_name": {
"last_name": "Expedia",
"first_name": "Sally"
},
"email_address": "imsafe@gmail.com",
"telephones": [
{
"type": "HOME",
"country_access_code": "1",
"area_code": "962",
"phone_number": "12345678"
}
],
"primary": true,
"birth_date": "2020-04-15T08:00:00-07:00"
}
],
"payments": [
{
"brand": "VISA",
"method": "CREDIT_CARD",
"billing_name": {
"last_name": "Expedia",
"first_name": "Sally"
},
"billing_address": {
"address_type": "HOME",
"address_line1": "Address Line 1",
"address_line2": "Address Line 2",
"city": "Amman",
"zip_code": "12345",
"country_code": "JOR"
},
"billing_email_address": "sally@example.com",
"authorized_amount": {
"value": 100.0,
"currency_code": "USD"
},
"card_type": "VISA",
"card_number": "378282246310005",
"card_avs_response": "Z",
"card_cvv_response": "T",
"telephones": [
{
"type": "HOME",
"country_access_code": "1",
"area_code": "962",
"phone_number": "12345678"
}
]
}
]
}
}
}
SDK example
fraud_prevention_client = FraudPreventionV2Client(
ClientConfig(
key="KEY",
secret="SECRET",
)
)
telephone = Telephone(
type=TelephoneType.HOME,
country_access_code='1',
area_code='962',
phone_number='12345678'
)
site_info = SiteInfo(country_code='USA', agent_assisted=False)
device_details = DeviceDetails(
device_box='TrustWidget',
ip_address='5.5.5.5'
)
name = Name(first_name='Sally', last_name='Expedia')
traveler = Traveler(
traveler_name=name,
email_address='imsafe@gmail.com',
telephones=[telephone],
primary=True,
birth_date=dateutil.parser.isoparse("2020-04-15T08:00:00.000-0700")
)
amount = Amount(value=100.0, currency_code='USD')
travel_product = Car(
type="CAR",
inventory_type='InventoryType',
inventory_source=InventorySource.AGENCY,
travelers_references=[""],
price=amount,
pick_up_location='pick up location',
drop_off_location='drop off location',
return_time=dateutil.parser.isoparse('2020-04-08T07:30:00.000-0700'),
pickup_time=dateutil.parser.isoparse('2020-04-15T08:00:00.000-0700')
)
credit_card = CreditCard(
brand=Brand.VISA,
method="CREDIT_CARD",
card_type=CardType.VISA,
billing_name=name,
authorized_amount=amount,
card_avs_response='Z',
card_cvv_response='T',
card_number='378282246310005',
billing_email_address='sally@example.com',
telephones=[telephone],
billing_address=Address(
address_type=AddressType.HOME,
address_line1="Address Line 1",
address_line2="Address Line 2",
city="Amman",
zip_code="12345",
country_code="JOR"
)
)
customer_account = CustomerAccount(account_type=AccountType.STANDARD, email_address='riskrtest@expedia.com', name=name)
transaction_details = TransactionDetails(
order_id='33322220004',
current_order_status=CurrentOrderStatus.IN_PROGRESS,
order_type=OrderType.CREATE,
travelers=[traveler],
travel_products=[travel_product],
payments=[credit_card],
)
order_purchase_transaction = OrderPurchaseTransaction(
site_info=site_info,
device_details=device_details,
customer_account=customer_account,
transaction_details=transaction_details
)
order_purchase_screen_request = OrderPurchaseScreenRequest(transaction=order_purchase_transaction)
fraud_prevention_client.screen(body=order_purchase_screen_request)
OrderPurchaseUpdate: Order Update
Request object
{
"type": "ORDER_UPDATE",
"risk_id": "RISK_ID",
"order_status": "COMPLETED",
"cancellation_reason": {
"primary_reason_code": "PRIMARY REASON CODE",
"sub_reason_code": "SUB REASON CODE",
"primary_reason_description": "PRIMARY REASON DESCRIPTION",
"sub_reason_description": "SUB REASON DESCRIPTION"
}
}
SDK example
fraud_prevention_client = FraudPreventionV2Client(
ClientConfig(
key="KEY",
secret="SECRET",
)
)
order_update = OrderUpdate(
type=UpdateType.ORDER_UPDATE,
risk_id="RISK_ID",
order_status=Status.COMPLETED,
cancellation_reason=CancellationReason(
primary_reason_code="PRIMARY REASON CODE",
sub_reason_code="SUB REASON CODE",
primary_reason_description="PRIMARY REASON DESCRIPTION",
sub_reason_description="SUB REASON DESCRIPTION"
)
)
fraud_prevention_client.update(body=order_update)
OrderPurchaseUpdate: Chargeback Feedback
Request object
{
"type": "CHARGEBACK_FEEDBACK",
"risk_id": "7b8cf809b18d4089bc924c9c808e2705",
"chargeback_detail": {
"chargeback_status": "RECEIVED",
"chargeback_reason": "FRAUD",
"chargeback_amount": {
"value": 100.0,
"currency_code": "USD"
},
"bank_reason_code": "BANK_REASON_CODE",
"chargeback_reported_date_time": "2023-06-04T22:53:10.757885"
}
}
SDK example
chargeback_feedback = ChargebackFeedback(
type="CHARGEBACK_FEEDBACK",
risk_id="RISK_ID",
chargeback_detail=ChargebackDetail(
chargeback_reason=ChargebackReason.FRAUD,
chargeback_amount=Amount(value=100, currency_code='USD'),
bank_reason_code='BANK_REASON_CODE',
chargeback_reported_date_time=datetime.now(),
chargeback_status=ChargebackStatus.RECEIVED
)
)
fraud_prevention_client.update(body=chargeback_feedback)
OrderPurchaseUpdate: Insult Feedback
Request object
{
"type": "INSULT_FEEDBACK",
"risk_id": "7b8cf809b18d4089bc924c9c808e2705",
"insult_detail": {
"insult_reported_date_time": "2023-06-04T22:50:39.108124"
}
}
SDK example
insult_feedback = InsultFeedback(
risk_id="RISK_ID",
type="INSULT_FEEDBACK",
insult_detail=InsultDetail(
insult_reported_date_time=datetime.now()
)
)
fraud_prevention_client.update(body=insult_feedback)
OrderPurchaseUpdate: Issued Refund Update
Request object
{
"type": "REFUND_UPDATE",
"risk_id": "RISK_ID",
"refund_status": "ISSUED",
"refund_details": {
"refund_issued_date_time": "2022-07-24T01:01:01.111000+00:00",
"refund_issued_amount": {
"value": 123.32,
"currency_code": "USD"
}
}
}
SDK example
issued_refund_update = IssuedRefundUpdate(
type="REFUND_UPDATE",
risk_id="7b8cf809b18d4089bc924c9c808e2705",
refund_status="ISSUED",
refund_details=IssuedRefundUpdateDetails(
refund_issued_date_time=dateutil.parser.isoparse("2022-07-24T01:01:01.111000+00:00"),
refund_issued_amount=Amount(
value=123.32,
currency_code="USD"
)
)
)
fraud_prevention_client.update(body=issued_refund_update)
OrderPurchaseUpdate: Settled Refund Update
Request object
{
"type": "REFUND_UPDATE",
"risk_id": "RISK_ID",
"refund_status": "SETTLED",
"refund_details": {
"refund_settlement_date_time": "2022-07-24T01:01:01.111000+00:00",
"refund_deposit_date_time": "2022-07-24T01:01:01.111000+00:00",
"acquirer_reference_number": "12345",
"settlement_id": "12345",
"refund_settled_amount": {
"value": 123.32,
"currency_code": "USD"
}
}
}
SDK example
settled_refund_update = SettledRefundUpdate(
type="REFUND_UPDATE",
risk_id="RISK_ID",
refund_status="SETTLED",
refund_details=SettledRefundUpdateDetails(
refund_settlement_date_time=dateutil.parser.isoparse("2022-07-24T01:01:01.111000+00:00"),
refund_deposit_date_time=dateutil.parser.isoparse("2022-07-24T01:01:01.111000+00:00"),
acquirer_reference_number="12345",
settlement_id="12345",
refund_settled_amount=Amount(
value=123.32,
currency_code="USD"
)
)
)
fraud_prevention_client.update(body=settled_refund_update)
OrderPurchaseUpdate: Payment Update
Request object
{
"type": "PAYMENT_UPDATE",
"risk_id": "RISK_ID",
"merchant_order_code": "MERCHANT_ORDER_CODE"
}
SDK example
payment_update = PaymentUpdate(
risk_id="RISK_ID",
type="PAYMENT_UPDATE",
merchant_order_code='MERCHANT_ORDER_CODE'
)
fraud_prevention_client.update(body=payment_update)
AccountTakeoverScreen
Request object
{
"transaction": {
"site_info": {
"locale": "en-US",
"name": "expedia.com",
"brand_name": "BRAND_NAME",
"placement_name": "LOGIN"
},
"device_details": {
"source": "SOURCE",
"device_box": "DEVICE_BOX",
"ip_address": "127.0.0.1",
"user_agent": "USER_AGENT",
"type": "WEBSITE"
},
"customer_account": {
"user_id": "USER_ID",
"account_type": "INDIVIDUAL",
"account_role": "USER",
"name": {
"last_name": "LAST_NAME",
"first_name": "FIRST_NAME",
"middle_name": "MIDDLE_NAME",
"title": "TITLE",
"suffix": "SUFFIX"
},
"username": "USERNAME",
"email_address": "user@example.com",
"telephones": [
{
"type": "HOME",
"platform_type": "MOBILE",
"country_access_code": "1",
"area_code": "123",
"phone_number": "123456",
"extension_number": "123",
"preference_rank": 0,
"last_verified_date_time": "1970-01-01T00:00:00+00:00",
"verified_flag": false
}
],
"address": {
"address_type": "HOME",
"address_line1": "ADDRESS_LINE1",
"address_line2": "ADDRESS_LINE2",
"city": "CITY",
"state": "AB",
"zip_code": "ZIP_CODE",
"country_code": "ABC"
},
"registered_time": "1970-01-01T00:00:00+00:00",
"active_flag": false,
"loyalty_member_id": "LOYALTY_MEMBER_ID"
},
"transaction_details": {
"type": "LOGIN",
"transaction_date_time": "1970-01-01T00:00:00+00:00",
"transaction_id": "TRANSACTION_ID",
"current_user_session": {
"session_id": "SESSION_ID",
"start_date_time": "1970-01-01T00:00:00+00:00",
"challenge_detail": {
"displayed_flag": false,
"type": "CAPTCHA",
"status": "SUCCESS"
}
},
"authentication_type": "CREDENTIALS",
"authentication_sub_type": "EMAIL",
"successful_login_flag": false,
"failed_login_reason": "INVALID_CREDENTIALS"
}
}
}
SDK example
site_info = AccountTakeoverSiteInfo(
locale="en-US",
name="expedia.com",
brand_name="BRAND_NAME",
placement_name="LOGIN"
)
device_details = AccountTakeoverDeviceDetails(
source="SOURCE",
device_box="DEVICE_BOX",
ip_address="127.0.0.1",
user_agent="USER_AGENT",
type=Type2.WEBSITE
)
name = AccountTakeoverName(
first_name="FIRST_NAME",
middle_name="MIDDLE_NAME",
last_name="LAST_NAME",
suffix="SUFFIX",
title="TITLE"
)
telephone = Telephone(
type=TelephoneType.HOME,
platform_type=TelephonePlatformType.MOBILE,
country_access_code="1",
area_code="123",
phone_number="123456",
extension_number="123",
preference_rank=0,
last_verified_date_time=dateutil.parser.isoparse("1970-01-01T00:00:00.000Z"),
verified_flag=False
)
address = Address(
address_type=AddressType.HOME,
address_line1="ADDRESS_LINE1",
address_line2="ADDRESS_LINE2",
city="CITY",
state="AB",
zip_code="ZIP_CODE",
country_code="ABC"
)
customer_account = AccountTakeoverCustomerAccount(
user_id="USER_ID",
account_type=AccountType1.INDIVIDUAL,
account_role=AccountRole.USER,
name=name,
username="USERNAME",
email_address="user@example.com",
telephones=[telephone],
address=address,
registered_time=dateutil.parser.isoparse("1970-01-01T00:00:00.000Z"),
active_flag=False,
loyalty_member_id="LOYALTY_MEMBER_ID"
)
challenge_detail = ChallengeDetail(
displayed_flag=False,
type=Type4.CAPTCHA,
status=Status3.SUCCESS
)
current_user_session=CurrentUserSession(
session_id="SESSION_ID",
start_date_time=dateutil.parser.isoparse("1970-01-01T00:00:00.000Z"),
challenge_detail=challenge_detail
)
transaction_details = LoginTransactionDetails(
transaction_date_time=dateutil.parser.isoparse("1970-01-01T00:00:00.000Z"),
transaction_id="TRANSACTION_ID",
current_user_session=current_user_session,
authentication_type=AuthenticationType.CREDENTIALS,
authentication_sub_type=AuthenticationSubType.EMAIL,
successful_login_flag=False,
failed_login_reason=FailedLoginReason.INVALID_CREDENTIALS
)
transaction=AccountTransaction(
site_info=site_info,
device_details=device_details,
customer_account=customer_account,
transaction_details=transaction_details
)
account_screen_request = AccountScreenRequest(transaction=transaction)
fraud_prevention_client.account_screen(body=account_screen_request)
AccountTakeoverUpdate: Multifactor Authentication Update
Request
{
"type": "MULTI_FACTOR_AUTHENTICATION_UPDATE",
"risk_id": "RISK_ID",
"multi_factor_authentication_attempts": [
{
"delivery_method": "SMS",
"status": "SUCCESS",
"reference_id": "REF_ID",
"provider_name": "PROVIDER_NAME",
"attempt_count": 1,
"update_start_date_time": "1970-01-01T00:00:00+00:00",
"update_end_date_time": "1970-01-01T00:00:00+00:00",
"telephone": {
"country_access_code": "1",
"area_code": "123",
"phone_number": "123456"
}
}
]
}
SDK Example
telephone=Telephone(
country_access_code="1",
area_code="123",
phone_number="123456"
)
multifactor_auth_attempt = MultiFactorAuthenticationAttempt(
delivery_method=DeliveryMethod.SMS,
status=Status1.SUCCESS,
reference_id="REF_ID",
provider_name="PROVIDER_NAME",
attempt_count=1,
update_start_date_time=dateutil.parser.isoparse("1970-01-01T00:00:00.000Z"),
update_end_date_time=dateutil.parser.isoparse("1970-01-01T00:00:00.000Z"),
telephone=telephone
)
multifactor_auth_update = MultiFactorAuthenticationUpdate(
risk_id="RISK_ID",
multi_factor_authentication_attempts=[multifactor_auth_attempt]
)
fraud_prevention_client.account_update(body=multifactor_auth_update)
AccountTakeoverUpdate: Remediation Update
Request
{
"type": "REMEDIATION_UPDATE",
"risk_id": "RISK_ID",
"remediation_update_actions": [
{
"action_name": "PASSWORD_RESET",
"status": "SUCCESS",
"update_end_date_time": "1970-01-01T00:00:00+00:00"
}
]
}
SDK Example
remediation_update_action = RemediationUpdateAction(
action_name=ActionName.PASSWORD_RESET,
status=Status2.SUCCESS,
update_end_date_time=dateutil.parser.isoparse("1970-01-01T00:00:00.000Z")
)
remediation_update = RemediationUpdate(
type="REMEDIATION_UPDATE",
risk_id="RISK_ID",
remediation_update_actions=[remediation_update_action]
)
response = fraud_prevention_client.account_update(body=remediation_update)