DM Events
DM Events
July 2018
CyberSource Corporation HQ | P.O. Box 8999 | San Francisco, CA 94128-8999 | Phone: 800-530-9095
CyberSource Contact Information
For general information about our company, products, and services, go to
http://www.cybersource.com.
For support information about any CyberSource Service, visit the Support Center at
http://www.cybersource.com/support.
Copyright
© 2016 CyberSource Corporation. All rights reserved. CyberSource Corporation (“CyberSource”) furnishes this
document and the software described in this document under the applicable agreement between the reader of
this document (“You”) and CyberSource (“Agreement”). You may use this document and/or software only in
accordance with the terms of the Agreement. Except as expressly set forth in the Agreement, the information
contained in this document is subject to change without notice and therefore should not be interpreted in any way
as a guarantee or warranty by CyberSource. CyberSource assumes no responsibility or liability for any errors
that may appear in this document. The copyrighted software that accompanies this document is licensed to You
for use only in strict accordance with the Agreement. You should read the Agreement carefully before using the
software. Except as permitted by the Agreement, You may not reproduce any part of this document, store this
document in a retrieval system, or transmit this document, in any form or by any means, electronic, mechanical,
recording, or otherwise, without the prior written consent of CyberSource.
Trademarks
Authorize.Net, eCheck.Net, and The Power of Payment are registered trademarks of CyberSource Corporation.
CyberSource, CyberSource Payment Manager, CyberSource Risk Manager, CyberSource Decision Manager,
and CyberSource Connect are trademarks and/or service marks of CyberSource Corporation.
All other brands and product names are trademarks or registered trademarks of their respective owners.
2
CONTENTS
Contents
Results 53
Negative List 53
Review List 54
Positive List 54
Deleting Records 54
Downloading Customer Lists 55
Downloading in CSV Format 55
Example of Report in CSV Format 58
Downloading in XML Format 59
Example of Report in XML Format 60
Uploading Data 61
Editing and Preparing to Upload Customer Lists 61
Uploading Files in CSV Format 62
Uploading Files in XML Format 64
File Format 67
Uploading Customer Lists 69
Verifying the Results 70
Managing Velocity 71
Rules Summary 71
Event Velocity Rule Elements 72
Creating Velocity Rules 73
Velocity Definition 74
Time Interval 75
Threshold 75
Morphing 75
Deleting Velocity Rules 76
Using the Decision Manager Event Detail Report 77
Creating an Event Detail Report 77
Downloading an Event Detail Report 78
Editing an Event Detail Report 78
Decision Manager Event Detail Report XML Example 79
XSD for the Decision Manager Event Detail Report 82
Appendix D Decision Manager Account Takeover Protection Service Cookie FAQ 137
Release Changes
July 2018 Updated the "Using the Decision Manager Event Detail Report" section for
the New Business Center.
April 2018 Updated the profiling tag examples and added the JavaScript code
example for clarification for web site device fingerprinting. See "Web Site
Implementations," page 17.
Added the following dynamic provider reply fields:
dm_event_provider_#_field_#_name
dm_event_provider_#_field_#_value
dm_event_provider_#_name
dmeReply_providerFields_#_field_#_name
dmeReply_providerFields_#_field_#_value
dmeReply_providerFields_provider_#_name
See "API Fields and Examples," page 84.
March 2018 Added information about the CyberSource APIs to the CyberSource web
site. See the CyberSource API Versions page.
Added new information about Enhanced Profiling. See "Enhanced
Profiling," page 13.
Updated implementation steps to support new versions of device
fingerprinting SDKs for iOS (v5.0-32) and Android (v5.0-96) applications.
See "Web Site Implementations," page 17, and "Mobile
Implementations," page 20.
Updated the error codes. See "iOS Return and Error Codes," page 27.
Added new tracking elements for velocity: billing address, email domain,
shipping first name, shipping last name, shipping postal code, and true IP
address state. See "Managing Velocity," page 71.
Added the Decision Manager Event Detail Report XSD and updated the
Decision Manager Event Detail Report XML example with dynamic
provider fields. See "Using the Decision Manager Event Detail Report,"
page 77.
October 2017 Added multiple morphing elements for velocity. See "Managing Velocity,"
page 71.
Release Changes
September 2017 Added information about the Decision Manager Account Takeover
Protection Service normalizing the customer IP address. See "Creating
Profile Selectors," page 31, "Creating Custom Rules," page 33, and
"Creating Custom Lists," page 37.
Added a section about the new velocity feature. See "Managing Velocity,"
page 71.
May 2017 Added true IP state reply field. See "API Fields and Examples," page 84.
Web developers and mobile application developers who modify the check-out page of
your company’s web site or who develop mobile applications that your customers use
to purchase merchandise from you on their phones or tablets. Mobile application
developers should have either Android or iOS platform application programming skills.
Software developers who add API fields to transaction requests and replies and who
write software code that integrates CyberSource services with your company’s order
management system.
E-commerce managers who are responsible for monitoring events related to account
access and passwords to ensure that customer accounts remain secure.
Scope
This guide narrowly focuses on implementing and using the Decision Manager Account
Takeover Protection Service. For information about implementing other CyberSource
services and about using Decision Manager in the Business Center, see "Related
Documents," page 11.
Conventions
Related Documents
You must be logged in to the Business Center to view these guides.
Decision Manager Using the Simple Order API Developer Guide describes how to
integrate Decision Manager, a fraud detection service, with your order management
system using the Simple Order API. (PDF | HTML)
Decision Manager Using the SCMP API Developer Guide describes how to integrate
Decision Manager, a fraud detection service, with your order management system
using the SCMP API. (PDF | HTML)
Decision Manager Device Fingerprinting Guide describes how to implement and use
device fingerprinting on your web site or with your mobile applications. (PDF | HTML)
The CyberSource API Versions page provides information about the CyberSource API
versions.
Customer Support
For support information about any CyberSource service, visit the Support Center:
http://www.cybersource.com/support
Introduction
The Decision Manager Account Takeover Protection Service enables you to configure
rules to screen customer account access events, such as account login or account
creation, on your e-commerce web site or mobile application. Screening for these events
enables you to monitor activity to enhance the security of your customer accounts and
reduce the likelihood of identity spoofing.
Account Takeover Protection uses the Decision Manager Events technology to monitor
new account creation, log in, and account update behaviors. It helps merchants identify
valuable returning customers while defending against fraudulent account creation and
takeover attempts.
You cannot use the Account Takeover Protection Service to screen payment
transactions. To screen payment transactions, use Decision Manager.
Note
To sign up for the Decision Manager Account Takeover Protection Service, contact your
account representative.
Device Fingerprinting
The Account Takeover Protection Service uses device fingerprinting which gathers
information about the devices that use your web site or your mobile application.
Enhanced Profiling
Device fingerprint collection technology uses the connection between the customer’s
device and the merchant’s shopping cart. Because dozens of browsers are supported on
hundreds of device platforms, which often change regularly, there may be instances in
which aspects of the device fingerprint are not reliable or present during a transaction.
This could be due to a customer explicitly blocking device collection methods or certain
default browser behaviors—all which are out of a merchant’s control.
CyberSource can manage the SSL process, which has an associated cost. For more
information, contact your CyberSource account manager.
In order to profile a device, profiling tags are placed on your website, or the Device
Fingerprint SDK is embedded in your mobile application. The tags or SDK request objects
from and transmit data to the device fingerprinting profiling server. Because the
CyberSource-based profiling server is a different domain than the original domain from
which the initial page or mobile application typically requests resources, visitors who are
monitoring the network requests can see that the requests are being made to a third-party
server.
5 Return the signed certificate, root certificate for your CA, and the chain (or bundle) file to
CyberSource.
6 CyberSource supplies the dedicated host name that is assigned for your profiling server.
The deployment timeframe for SSL certificates is 5 to 7 days upon receipt of the SSL
certificate, bundle certificates, and root certificate authority (CA). All of these file are
required to minimize the deployment time of the SSL certificates.
See the following sections "Selecting a Sub-Domain Name for Your Profiling Server,"
page 14, and "Obtaining the CSR for Your Profiling Server Host Name and a Signed
Certificate File," page 15, for further details on submitting SSL requests. Contact
CyberSource Customer Support if you have questions.
content.yourdomain.com
img2.yourdomain.com
cdnA.yourdomain.com
When you have chosen a host name to use for profiling, provide it to your CyberSource
services representative along with the fields described below.
These fields are the minimum information needed to create a certificate signing
request (CSR). Your Certificate Authority (CA) may require additional
Note information. Check with them prior to providing this information to CyberSource
to ensure that the CSR is created according to the CA requirements.
Organization name (for example, company) [Internet Widgits Pty Ltd.]: Lemon Bank,
Inc.
Common name or fully qualified domain name (for example, sub-domain that has
been chosen): content.lemonbank.com
Obtaining the CSR for Your Profiling Server Host Name and a Signed
Certificate File
The following examples use content.yourdomain.com. If you decide on a different name,
simply substitute it in the instructions outlined.
In addition to supplying the CSR, CyberSource supplies the dedicated host name that is
assigned for your profiling server. This unique host name is required in order for you to
configure your DNS. Please note that the DNS redirection is not available until the SSL
certificate is deployed into the production environment. You can direct all traffic to
content.yourdomain.com by setting up a CNAME record in your DNS.
If your corporate security policy does not allow generation of the CSR, contact
CyberSource Customer Support to discuss alternative methods.
Note
In the event that a wildcard certificate is deployed, a Fully Qualified Domain Name
(FQDN) is required for monitoring proposes. This requires you to create an entry as
outlined in the example above and provide it to CyberSource.
You should make this change only after you verify that the certificate is
deployed. Making this change before the certificate is deployed (even if the
Warning DNS changes are complete) might generate security warnings in your end-
users’ web browsers.
The session ID must be unique for each page load regardless of an individual’s web
session ID. If a user navigates to a profiled page and is assigned a web session,
navigates away from the profiled page, then navigates back to the profiled page, the
generated session ID should be different and unique. You may use a web session ID,
but it is preferable to use an application GUID (Globally Unique Identifier). This
measure ensures that a unique ID is generated every time the page is loaded, even if
it is the same user reloading the page.
Custom Profiling Domain (optional): domain that serves the JavaScript tag. The
default is h.online-metrix.net. As an alternative, you can implement Enhanced
Profiling so that all profiling requests are made to a domain that is secured by your
SSL digital certificates. See "Enhanced Profiling," page 13, for more information.
Be sure to copy all characters correctly and to omit the angle brackets (< >) when
substituting your values for the variables.
To allow device profiling time to complete, ensure that 3 to 5 seconds elapse between the
execution of the profiling code and when your customers submit their orders.
Tag Placement
Place the basic <script> tag in the <head> tag for optimal performance for either
method.
For the basic <script> tag with <noscript> tag method, place the <noscript> tag in
the <body> tag, as in Example 1. Do not place the <noscript> tag in the <head> tag
because it contains an <iframe> tag. Placing iframes in the head tag violates W3C
validation and might cause problems.
JavaScript Code
<head>
</head>
<body>
<noscript>
</noscript>
</body>
<head>
</head>
<body>
<noscript>
</noscript>
</body>
<head>
</head>
Mobile Implementations
You can deploy Decision Manager Account Takeover Protection Service device
fingerprinting in Android and iOS applications.
The SDK uses Android’s native API as the default API for data transmission. You can use
the OkHTTP library (3+) by passing true to the setUseOKHTTP() method.
You must explicitly set the time unit for all timeout settings within the SDK.
If your application supports Android API 15 or earlier, you must do one of the
following:
Important Add this code to your application before making any calls to the SDK:
System.setProperty("java.io.tmpdir",
getApplicationContext().getDir("files", Context.MODE_
PRIVATE).getPath())
OR
Step 2 The zip file contains two different formats. Include only one of these formats in your
project. The selection of files includes:
a TrustDefender-<version>.aar contains both the Java files and the Android native
shared library.
Step 3 Include the following permission in the mobile application manifest file:
<uses-permission android:name="android.permission.INTERNET">
</uses-permission>
Step 4 Specify your merchant ID and the session ID as a concatenated value for a variable that is
passed to the TrustDefenderMobile class in your Android application. In the following
example, my_variable=your merchant ID + the session ID as a concatenated value:
profile.setSessionID ("my_variable");
The session ID must be unique for each page load, regardless of an individual’s web
session ID. If a user navigates to a profiled page and is assigned a web session, navigates
away from the profiled page, then navigates back to the profiled page, the generated
session ID should be different and unique. You may use a web session ID, but it is
preferable to use an application GUID (Globally Unique Identifier). This measure ensures
that a unique ID is generated every time the page is loaded, even if it is the same user
reloading the page.
Step 5 Add the doProfileRequest() function to your application, and specify the following
required calling options:
Option Description
Org ID Contact CyberSource Customer Support for this value and
specify whether it is for testing or production.
Fingerprint server URL Fully qualified domain name (FQDN) of the server. It must be
specified in an FQDN format, for example, host.domain.com,
NOT in URL format.
After you add the device fingerprinting mobile SDK to your application, you must specify
the session ID in the API request that you send to CyberSource by using the
deviceFingerprintID Simple Order API request field or the device_fingerprint_id SCMP
API request field.
The return profiling code THM_OK must be present before you send the API
request. This code ensures the presence of a complete profile.
Important
Value Description
THM_NotYet The profiling request is not yet complete.
THM_OK Device profiling completed with no errors.
THM_Connection_Error A connection issue was encountered between the
device and the fingerprint online server. Ensure that
you are referencing the server correctly and that you
can access it from the device.
THM_HostNotFound_Error The host name of the fingerprint server could not be
resolved. Ensure that you are referencing the server
correctly and that you can access it from the device.
THM_NetworkTimeout_Error A timeout occurred while the device was
communicating with the fingerprint server. A timeout
can occur if the device’s internet connection is
disabled while it is communicating with the server.
THM_HostVerification_Error The fingerprint server host name in use does not
match the host name in the certificate, which may be
evident when you use the Advanced Profiling feature
or implement in a proxied scenario with the custom
URL option. Ensure that a valid certificate is in use
on the target host name specified in the custom URL
option.
THM_Internal_Error A miscellaneous error was detected. Check the
input/options used when calling the library.
THM_Interrupted_Error The profiling request was interrupted or canceled
mid-flight.
Value Description
THM_InvalidOrgID This code is returned if an invalid or NULL value is
present in the org_id calling option.
THM_PartialProfile A connection error resulted in partial profiling.
THM_Blocked The profiling request cannot be processed because
profiling is blocked due to some conditions. The
most common scenario is that the phone screen is
off longer than the amount of time specified by the
screenOffTimeout value. You can customize this
value by calling the Config.setScreenOffTimeout()
method during init().
Config config = new Config()
.setContext(getApplicationContext())
.setScreenOffTimeout(180); profile.init(config);
THM_ConfigurationError Mobile SDK is not activated for the customer.
THM_Already_Initialised SDK is already initialized; use the current instance.
THM_EndNotifier_Not_Found EndNotifier is not passed to doProfileRequest,
and it is mandatory in the profile request.
THM_ThirdPartyLibrary_Not_Found OkHttp library is not available; include the library.
For information about how to include the library see
http://square.github.io/okhttp/
Note Both OkHttp 2 and OkHttp 3 are supported.
To develop iOS applications, you must be enrolled in the iOS Developer Program, which
enables you to upload your applications to the Apple App Store. To link to the
CyberSource device fingerprinting mobile SDK, you must use the iOS 8 or later and the
Apple Xcode 6.0 IDE.
Step 2 Import the device fingerprinting SDK libraries and frameworks into your iOS application:
#import <TrustDefender/TrustDefender.h>
If using Modular Import, add the following code as needed to your project:
@import TrustDefender; //Objective-C
Or
import TrustDefender //Swift
For information about linking to libraries and frameworks in iOS applications, see:
https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/Articles/
AddingaLibrarytoaTarget.html
Step 4 Specify your merchant ID and the session ID as a concatenated value for a variable that is
passed to the TrustDefenderMobile class in your iOS application. In the following
example, my_variable = your merchant ID + the session ID as a concatenated value:
self.profile.sessionID = @"my_variable";
The session ID must be unique for each page load, regardless of an individual’s web
session ID. If the same user navigates to a profiled page and is assigned a web session,
navigates away from the profiled page, then navigates back to the profiled page, the
generated session ID should be different and unique. You may use a web session ID, but
it is preferable to use an application GUID (Globally Unique Identifier). This measure
ensures that a unique ID is generated every time the page is loaded, even if it is the same
user reloading the page.
Step 5 Add the doProfileRequest() function to your application, and specify the following
calling options:
Option Description
Org ID Contact CyberSource Customer Support for this value and
specify whether it is for testing or production.
Fingerprint server URL Fully qualified domain name (FQDN) of the server. It must be
specified in an FQDN format, for example, host.domain.com,
NOT in URL format.
https://developer.apple.com/library/mac/qa/qa1490/_index.html
After you add the device fingerprinting mobile SDK to your application, you must specify
the session ID in the API request that you send to CyberSource by using the
deviceFingerprintID Simple Order API request field or the device_fingerprint_id SCMP
API request field.
The return profiling code THMStatusCodeOk must be present before you send
the API request. This code ensures the presence of a complete profile.
Important
Value Description
THMStatusCodeNotYet The profiling request is not yet complete.
THMStatusCodeOk Device profiling completed with no errors.
THMStatusCodeConnectionError A connection issue was encountered between the
device and the fingerprint online server. Ensure that
you are referencing the server correctly and that you
can access it from the device.
THMStatusCodeHostNotFoundError The host name of the fingerprint server could not be
resolved. Ensure that you are referencing the server
correctly and that you can access it from the device.
THMStatusCodeNetworkTimeoutError A timeout occurred while the device was
communicating with the fingerprint server. A timeout
can occur if the device’s internet connection is
disabled while it is communicating with the server.
THMStatusCodeHostVerificationError The fingerprint server host name in use does not
match the host name in the certificate, which may be
evident when you use the Advanced Profiling feature
or implement in a proxied scenario with the custom
URL option. Ensure that a valid certificate is in use
on the target host name specified in the custom URL
option.
THMStatusCodeInternalError A miscellaneous error was detected. Check the
input/options used when calling the library.
THMStatusCodeInterruptedError The profiling request was interrupted or canceled
mid-flight.
Value Description
THMStatusCodePartialProfile A connection error resulted in partial profiling.
THMStatusCodeInvalidOrgID This code is returned if an invalid or NULL value is
present in the org_id calling option.
THMStatusCodeNotConfigured This code is returned if the object is not configured
properly. You may receive this code if you pass the
wrong options to the configure method.
THMStatusCodeCertificateMismatch This code is returned when there is a mismatch
between the certificate pinned and the certificate
used in the host.
An event profile is a group of business rules that screen account access events for risk.
The rule calculation causes the event to be accepted, rejected, or challenged.
In both cases, custom rules that you have created are listed in the categories that you
select. After you make your changes, click Save if you are creating a profile or Apply if
you are modifying a profile.
Defining a Profile
Give your profiles a descriptive name. The name appears in the list of events with the
description. Both should reflect the purpose of each profile.
You can set a priority level for each profile according to your business rules or the types of
events that are screened by the profile. Priority levels range from 1 (high) to 5 (low). Your
selection takes effect as soon as you save the profile.
The default priority level is 3. Events are assigned the same priority as the profile when
either of the following applies:
no priority is set for the triggered rules
no rules are triggered even if a priority level is set for them.
Rule Options
For each rule, select the appropriate check box for profile impact on the event. You can
choose only one option for each rule:
Monitor: the rule is used to evaluate the event, but the result has no impact on event
acceptance or challenge. Use this setting for rules that you want to test before putting
them into production.
Accept: the event should be allowed. Use this rule for specific cases only, such as
when customers who are added temporarily to the positive list replace an event.
Rule Priority
You can set a priority level for each rule. Priority levels range from 1 (highest) to 5 (lowest).
Your selections take effect as soon as you update the profile. By default, no priority is set
for any rule. If you save a profile in which no priority is assigned to a rule, events are
assigned the profile’s priority. When you set a priority level to a rule, events are assigned
priority as follows:
Events are assigned priority according to the triggered rule that has the highest priority
level.
The priority level of any triggered rule supersedes that of the profile (1) whether the
rule's priority is higher or lower than that of the profile and (2) regardless of the impact
of the rule (accept, monitor, review, or reject) on the profile.
Custom Rules
You can add up to 100 custom rules in each profile, and for each merchant ID, you can
create up to 600 custom rules that can be used in any profile. You can set each custom
business rule to Monitor, Accept, Challenge, or Reject. Rules that are set to Monitor
evaluate events, but the evaluation is not considered in the final results.
The Account Takeover Protection Service and Decision Manager do not share
custom rules.
Note
Copying a Profile
cloning
To save time when creating additional profiles, you can copy and modify an existing
profile. Any user with permission to edit profiles can do it. To make a copy, save the event
profile with a different name and description.
Deleting a Profile
To delete a profile, click Delete at the top of the profile. Make sure the profile is not in use
before deleting it. Deleted profiles no longer appear in the list of profiles.
Selecting Profiles
After creating a profile, you choose how to use it by:
1 Creating a rule to select the profile.
2 Selecting a default profile.
If you use the customer IP address in a profile selector rule, the address requires special
formatting. The Decision Manager Account Takeover Protection Service normalizes the
customer IP address in the API request as follows:
For Internet Protocol version 4 (IPv4): by removing leading zeros in any of the octets.
For Internet Protocol version 6 (IPv6): by including all eight groups of hexadecimal
digits, by removing leading zeros in any of the groups, and by converting all letters to
lowercase.
If you create a profile selector rule using the customer IP address, make sure that you
enter it in the Custom Value field as described above.
Step 4 Select the profile that you want to screen with this rule.
Your rule appears at the bottom of the list. You can now change its position in the event
evaluation sequence.
Step 7 Drag the rule to a new evaluation position by using the handle.
Rule Sequence
After creating selector rules, you must choose the order in which you want the Decision
Manager Account Takeover Protection Service to use them to choose a profile. To
rearrange the profile selector rules, drag the handle on the left edge to move the rule up or
down. The order number of the selector rule is updated as soon as you release the
handle.
You can create custom rules to meet your business requirements. For each merchant ID,
you can create up to 600 custom rules. Rules are not case sensitive, except for merchant
velocity rules that contain custom fields and product velocity rules that contain product
SKUs.
Before creating a custom rule, make sure that your development team has
added the fields to your API request that correspond to the event elements and
Important that you plan to use in your custom rules. If the event information is not
available, your custom rules do not work, and you do not receive an error
message.
Components
The components of a custom rule comprise an event element, a condition operator, and a
comparison value.
Event Elements
Event elements are request fields, reply fields, and other event data fields. Some elements
contain only a single value while others can contain multiple values. For example, an
event can contain only one billing address. The Rule Editor has more than 100 predefined
elements. You can also create rules with custom fields, which are listed at the bottom of
the event elements. For example, you could use one or more of the following custom
fields:
If you create a custom rule using the customer IP address, the IP address requires special
formatting. The Decision Manager Account Takeover Protection Service normalizes the
customer IP address in the API request as follows:
For Internet Protocol version 4 (IPv4): by removing leading zeros in any of the octets.
For Internet Protocol version 6 (IPv6): by including all eight groups of hexadecimal
digits, by removing leading zeros in any of the groups, and by converting all letters to
lowercase.
Before: 123A:45cd:0067:89::EF
After: 123a:45cd:67:89:0:0:0:ef
If you create a custom rule using the customer IP address, make sure that you enter it in
the Custom Value field as described above.
Comparison Operators
Comparison operators enable you to compare an element to one or more values or to
determine whether a condition is present.
Present
Use to obtain a yes or no answer about the presence of a specific value in the event data.
Regular Expressions
Use with elements that can contain multiple values.
Comparison Values
Some of the values are predetermined. In other cases, you must enter the value(s) that
you want to find, such as an amount or a list of custom fields. When appropriate for the
event element that you are using, you can select multiple comparison values by using
Ctrl-click, for example: several possible card verification values, custom lists, and custom
fields. When using custom values, separate lists of values with a comma, except with the
greater than and less than operators.
Creating a Rule
To create a rule:
Step 1 Under Event Configuration, choose Custom Rules > Add Rule at the bottom of the
window. The rule editor opens.
Step 3 If you know where you want to place this rule, choose a category. Or, you can choose the
category later in the Custom Rules list window.
Step 4 If you want this rule to be added automatically to profiles created with core rules, check
the Core Rule box, and from the drop-down menu choose the rule to be used in the
profile.
Initially, set new rules to Monitor so that you can evaluate and refine how a rule functions
before placing it into production.
Monitor indicates that the rule is used to evaluate the event, but the result has no
impact on event acceptance or challenge. Use this setting for rules that you want to
test before putting them into production.
Accept indicates that the event is automatically accepted. Use this rule for specific
cases only, for example, when customers who are added temporarily to the positive
list replace an event.
Step 6 Create more conditions as needed. For rules that contain two or more conditions, decide
how the conditions should interact:
If you want the rule to be triggered only when all conditions are triggered, select all
conditions are true.
If you want the rule to be triggered when any one condition is triggered, select at least
one condition is true.
Step 7 To add this rule immediately to your existing profiles (optional), click Edit Rule
Configuration in Profiles.
This option enables you to set simultaneously in all profiles how you want to use the rule
(monitor, accept, challenge, or reject) and how you want to set the rule priority. When you
set a custom rule as a core rule, the profiles created with core rules will show the rule as
you set it. In profiles created without core rules, the rule setting may be different. If you
prefer, you can add the rule to your profiles later.
Step 8 For each profile listed, check the box to indicate how to use the rule (accept, review,
challenge, or monitor) and a priority, if you wish.
Step 10 To close the Rule Editor and return to the list of custom rules, click Save.
If two users are modifying a rule at the same time, the changes saved last are
kept.
Note
Step 11 To view your rule, go to the navigation pane and click Custom Rules.
Your rule appears in the category in which you placed it. You can modify the rule at any
time.
Custom lists enable you to streamline your business and product information by
combining several items into lists. Initially, this menu contains only the list of countries, as
shown below. To view and edit the content of a list, click anywhere on a name or
description of the list or on the pencil icon:
The lists that you create are added above the list of countries.
Custom Lists
You can define up to 200 custom lists, which you can use in custom rules and as product
groups in velocity rules. Each list can contain up to 8000 elements of up to 50 characters
each. The same element can be used in several lists. As soon as you save a list, you can
use it in custom rules.
The elements of custom lists are not case sensitive. However, the elements of
the lists that you plan to use as product groups in velocity rules are case
Important sensitive.
You can change the name, description, and content of the lists at any time. Rules that
contain the modified custom lists are updated automatically. All custom lists use the string
data type, which includes letters and numbers. Even if a list contains other characters or
types of information, such as a date, the list is screened as if it contains only letters and
numbers. Make sure that each element within a list is unique.
The Decision Manager Account Takeover Protection Service normalizes the customer IP
address in the API request as follows:
For Internet Protocol version 4 (IPv4): by removing leading zeros in any of the octets.
For Internet Protocol version 6 (IPv6): by including all eight groups of hexadecimal
digits, by removing leading zeros in any of the groups, and by converting all letters to
lowercase.
Before: 123A:45cd:0067:89::EF
After: 123a:45cd:67:89:0:0:0:ef
If you create a custom list using the customer IP address, make sure that you format each
item as described above.
To create a list:
Step 1 To create a list, click Add Custom List at the bottom of the page.
The list appears in alphabetical order in the Custom Lists summary window.
You can edit your lists as needed. After you delete an item from the list, click Apply. The
item is deleted without a warning message. You can delete any custom list unless it is
being used in a custom or velocity rule. If you attempt to delete such a list, a warning
message appears. To delete a custom list, click Delete Custom List.
Merchant Region
Choose the countries from which you will accept events. When you choose the countries,
you can use the predefined rule Event outside merchant's region, and you can create
custom rules that use your countries as comparison values when you use billing country or
shipping country as event elements. You can modify your list of countries at any time.
To select countries, click the Merchant Region line in the Custom Lists summary window.
In the Merchant Region List Editor, select countries one by one, or to select multiple
countries at once, use Ctrl-click and Shift-click. When done, click Save. Although you
can view and edit its content, you cannot delete this list.
You can use custom fields in custom and velocity rules. You can use up to 100 fields. To
use a custom field, assign a name that is meaningful to your business.
Although you can name custom fields only in the Business Center, you can use them
either in the API or in the Business Center. To use custom fields correctly, you need to
coordinate the names with your development team. The first four merchant-defined fields
are also used by the Secure Data services. For information on using the merchant-defined
data API fields, see the Decision Manager Using the Simple Order API Developer Guide
(PDF | HTML) or the Decision Manager Using the SCMP API Developer Guide (PDF |
HTML). You must be logged in to the Business Center to view these guides.
Step 2 Enter a name (up to 30 characters) and description (up to 255 characters).
In the name, do not use the back slash (\) or the single quote (‘).
Step 3 Choose the type of data that the custom field should contain:
String, which includes letters and numbers
Number, which includes only numbers
Date, which includes date and time
After you have created a custom field, you can change the name and the description but
not the data type. To change the data type, you must delete the field and create a new
one. When you do so, rules that used the old custom field no longer function correctly
because they are not updated with the new data type. Therefore, when deleting a custom
field, be sure that it is not currently being used or that you recreate a corresponding field
with the same data type.
Step 1 In the Rule Editor, click Copy Rule. A simplified version of the Rule Editor appears.
Step 2 Change at least the name of the rule, ensuring that the name does not conflict with the
names of your existing rules.
You can delete rules from the Rule Editor or from the rules summary window:
From the Rule Editor, click Delete at the top of the window.
From the rules summary window, check the boxes to the right of the rules, and click
Delete at the bottom of the window.
Categories
Categories are user-defined sets of rules that you can group together as appropriate for
your business. You may create new categories and add rules to categories as desired.
The number next to the name of a category indicates the number of rules in the category.
For example, you might create a category of rules associated with payment types or
specific groups of products. By default, the categories are open. The number next to the
name of the category indicates the number of rules in that category.
To move the new (or any other) category in the window, use the handle to drag the
category to a new location.
To move a rule from one category to another, use the handle on the left of the rule. The list
of categories appears. Drag the rule to the category of your choice.
Core Rules
Core rules are rules that you want added automatically when you create a profile with core
rules instead of an empty profile:
When you create a profile, you can set any rule as a core rule and you can change your
settings at any time.
To set a rule as a core rule, click the red C; to remove the setting click the gray C:
Addresses are normalized before they are added to a list. In the search results
and in the files that you download, all minor errors are corrected, and the
Important address information is formatted consistently using common abbreviations, for
example: st for street. In addition, the address information is changed to
lowercase. For example:
“44 Fisher Str./Mtn View/California/94053”
is changed to:
“44 fisher St/mountain view/ca/94043”
Addresses are normalized before being compared to other addresses.
List Manager
With List Manager, you can add individual entries. For all lists, you choose the type of data
(negative, review, or positive) and the event elements that you want to add to the
database.
CyberSource API
You can use the Risk Update service to update your customer lists. You choose the type of
negative or positive data and the customers that you want to add to the lists. Adding lists
also affects Decision Manager. For more information, see the Decision Manager Using the
Simple Order API Developer Guide (PDF | HTML) or the Decision Manager Using the
SCMP API Developer Guide (PDF | HTML). You must be logged in to the Business Center
to view these guides.
Events that you mark as trusted are added to the positive list temporarily or
permanently.
While updating your customer lists with List Manager, you can search for up to 5000
records. However, you can export the complete lists in XML or CSV format even if the
lists contain more than 5000 records.
Deleting Data
You can delete some of the data from the customer lists.
API: using the appropriate action code of the Risk Update service, you can delete
information from customer lists. For more information on the API fields, see the
Decision Manager Using the Simple Order API Developer Guide (PDF | HTML) or the
Decision Manager Using the SCMP API Developer Guide (PDF | HTML). You must be
logged in to the Business Center to view these guides.
List Manager: after searching your lists, you can delete entries in the search results
window. In addition, if you download the results of your searches, you can delete
entries before uploading your modified lists.
After reviewing events, you can use the Remove from History feature to ignore specific
data that you no longer consider fraudulent.
With the positive list, each record that you create comprises all the identity elements
of the option that you choose.
With the negative and review lists, each identity element is added to the list as an
individual record. For example, if you create a list record by entering data in four fields,
you effectively add four records to your list. However, all the address elements are
counted as one identity element.
Data added to the review list is deleted automatically after one year if you
do not move it to the negative list or delete it manually.
Note
An event will return a match if a single item from the event is matched to the negative or
the review list, but all the items of a positive list record must match the event for it to be
considered good.
Positive Records
Email address and Average customer who shops from the home computer and has the
billing address order shipped to the home address.
Email address and Customer who shops from home, work, or while travelling and has the
shipping address item shipped to an address other than the home address, such as the
work address. The item may also be a gift.
Email domain and Organization, such as a company or college campus, which usually
billing address contains two types of users:
Corporate users who use the company card and have items
shipped not necessarily to the building where they work.
Students and others who use a personal card and have a billing
address outside the campus.
Step 2 Enter a name for the record, which can be a number, name, or other identifier that you
assign to your customers.
This identifier is used for reference only; it is not used as a matching criterion.
Step 3 Enter notes or reasons for adding the customer or the event to your positive list.
Step 4 Enter the customer's complete email address, such as [email protected] or the
customer's email domain, which is the part of the address after the @ sign, such as
example.com.
If you try to add a record that already exists in the positive list, you receive a
failure message specifying that at least one duplicate record exists. If you try to
Important add a record that already exists in the negative list, you are not notified.
However, when you attempt to process a transaction with data present in both
lists, you receive the information code CON-POSNEG in the API reply and in
the case details window.
Step 6 To verify the result of your action, search the positive list for data that you added.
Step 1 Choose a reason and add notes to document your reason for marking the event.
Step 2 Enter as much information as you can in the List Fields section.
Email address and The email address is generally specific to an individual, but the domain
email domain can comprise several email addresses. If you believe that several email
addresses that are part of a single domain are undesirable, you can add
the entire domain to your negative list.
Complete IP and The complete IP address generally applies to a single computer, but the
Network IP network address applies to the entire network to which a computer
Addresses belongs. If you believe that several IP addresses that are part of a
network are undesirable, you can add the entire network to your
negative list.
Phone Number If billing and shipping information are present in an order, the order may
also have two phone numbers. When deciding whether to add the phone
number to the negative list, consider the rest of the information,
especially the address(es).
Customer Account Optional account ID, tracking number, reward number, or other unique
ID number that you assign to the customer.
CPF/CNPJ CPF (individual) or CNPJ (business) identification number used by the
Brazilian revenue agency, Receita Federal, for Brazilian customers only.
Device Fingerprint Unique ID of the computer used by the customer to place the order.
Smart ID Device identifier generated from attributes collected during profiling.
Step 5 To verify the result of your action, search the negative list for data that you added.
Search Criteria
You can search for negative list, review list, and positive list records from the List Search
window. See the "Negative List," "Review List," and "Positive List" sections for more
information.
Date Range
The first criterion that you must choose is the date or date range during which the data
was added to the customer list. The preset ranges enable you to search from the past
hour to the past six months. Although all other Business Center searches are limited to six
months, you can search through all your past customer list records in CyberSource’s
database; from the Creation Date drop-down menu, choose All.
Field Options
Narrow the scope of your search as much as possible to shorten the duration of your
search. This table describes all the options available for all types of lists: negative (N),
review (R), and positive (P).
Results
For all lists, the account number and address results are displayed as follows.
Complete Address
The complete address comprises the street address (one or two fields), city, state or
province, postal code, and country. When you search for an address, List Manager always
returns all addresses that contain the element that you searched for and all addresses that
contain no value for this element.
For example, if you search for the postal code 94520, List Manager returns all addresses
within this postal code and all addresses that have no postal code regardless of the
content of the other address elements. These addresses without data are returned
because some of them may be located within the postal code that you are searching. You
can further investigate these empty address elements to find out if they are relevant.
Marking Request ID
The request ID appears in the far right column. The request ID is a link to an event that
was marked. If the list entry is older than six months, its details are not available. If
multiple fields from different events are found on the negative list, the request ID of the first
event is shown.
Negative List
You can search the negative list to view its data or to move it to the review list. Each type
of data, such as billing address, email address, and account suffix, appears on a separate
row. In the Entry Type column, the billing or shipping address is labeled Address.
When an event contains customer data that was previously added to the negative list, the
data from the new event is automatically added to the negative list.
To move event data from the negative to the review list, select one or more lines. When
you do so, the button named Convert to Review is activated.
After you click Convert to Review, a message confirms that the action was successful.
Review List
You can search the review list to view its data, to move it to the negative list, or to delete
the data confirmed valid that was previously marked suspicious. Searching for review list
items returns results similar to the negative list search. Each type of event data, such as IP
address and billing address, appears on a separate row. In the Entry Type column, the
billing or shipping address is labeled Address.
To move event data from the review to the negative list, select one or more lines. When
you do so, the button named Convert to Negative is activated.
Positive List
Searching the positive list is especially important in order to keep track of temporary
records. These records are dropped automatically from the positive list when:
The time allowed to trigger an event has elapsed whether or not the customer has
triggered the event again.
Deleting Records
To delete records, check one or more records and click Delete. The results window
reappears with a success message.
When you download your lists, you can edit the content as needed and later add the
updated data to the Business Center. You can export your lists in XML or CSV format.
Although you can view a maximum of 5000 records in the results window, you can export
your complete positive and negative lists. You can download your lists before or after
searching for the content.
The following figure shows the export features in the List Search window:
Step 3 Change the file extension from .csv to .txt so that all data in long numeric strings
appears correctly.
Step 5 Import the text file into a spreadsheet as described in the Decision Manager Reporting
Guide (PDF | HTML). You must be logged in to the Business Center to view this guide.
Optional fields contain information only if you added the corresponding data to the list. In
this figure, the fields that contain no data have been collapsed so that you can more easily
view the fields that contain data.
Report headings
Report Date Range All
or
Report Start Date Jun 01 2009 12:00:00 AM
Report End Date Jun 11 2009 07:24:03 PM
Column headings for a positive list
recordName, listType, creationDate, createdBy, groupID, merchantID, expiration,
customerAccountID, billingPhone, shippingPhone, paymentType, accountSuffix, email,
emailDomain, billingAddress1, billingAddress2, billingCity, billingState,
billingPostalCode, billingCountry, shippingAddress1, shippingAddress2, shippingCity,
shippingState, shippingPostalCode, shippingCountry, creditCardBINCountry, IPCountry,
customerEmailCountry, deviceFingerprint, markingNotes, markingRequestID, cpfCnpj,
lastUsedDate
Column headings for negative and review lists
recordName, creationDate, createdBy, groupID, merchantID, customerAccountID,
billingPhone, shippingPhone, paymentType, accountSuffix, creditCardBINNumber, email,
emailDomain, address1, address2, city, state, postalCode, country, IPAddress,
networkIP, creditCardBINCountry, IPCountry, customerEmailCountry, deviceFingerprint,
markingReason, markingNotes, markingRequestID, cpfCnpj, smartId, lastUsedDate
Before downloading an XML report, make sure that you have the current DTD
so that you can take advantage of the most recent features.
Important
To download a list, click XML and save the file on your computer.
Start and end dates or a date range appears in the attributes of the report. Optional fields
appear only when the record contains data. These elements are derived as follows:
Uploading Data
This section describes how to prepare your files before adding them to the Business
Center. Remember that addresses are normalized by List Manager before they are added
to a list.
You can upload files with negative, positive, and review list data in CSV format or in XML
format. When preparing your files for uploading, make sure that you follow these important
points:
CyberSource recommends that when you name your files you date them to track the
updates more easily, for example: negative_list_updates_03-02-06.csv
The character encoding is usually included in the XML file, but you have to specify the
encoding for CSV files when you upload them:
If you are using a Western European language, use the default (Latin-1).
If you are using Japanese characters, choose Shift-JIS.
In all other cases, choose UTF-8 or UTF-16.
When you upload data to a list, you must format each record according to the options
available in the Business Center. Otherwise, your file does not upload successfully.
Each record you that you add to the positive list must contain one of these sets of
data in addition to the required record name:
Each record you that you add to the negative list can contain as many of these
elements as you want. Email addresses and phone numbers are not specific. You
can use these fields for customer data.
Email Address
Email Domain
Complete IP Address
Network IP Address
Phone Number (numbers only)
Address
City
State/Province
Postal Code
Country
CPF/CNPJ
Smart ID
True IP Address
Proxy IP Address
Positive List
These headings are deleted in Step 3. You cannot add a temporary record to your positive
list when you upload a file, but you can do so in the Business Center with the List Addition
menu.
In this example, the first line contains an email and the billing address, the second line
contains an email domain and billing address, and the last line contains an email address
and shipping address.
Negative List
Files for the negative list are the simplest because each entry contains only a field name
and a field value from this list:
address1/address2/city/state/postal_code/country
Country is required. If you have no data for one or more of the address sections, you must
still include five forward slashes (/):
address1//city//postal_code/country
When you add an address, it appears in the uploaded results as the billing and the
shipping address. If you want to save only one of the entries, delete one of them from the
uploaded results.
repeated field names
You can upload a list that contains only some of the field names, such as a list of names or
email addresses. In this case, each row would consist of the field name and the
corresponding value:
customer_email [email protected]
customer_email [email protected]
customer_email [email protected]
In the file, do not include a heading row, and insert the fields in the correct order:
FieldName followed by FieldValue, for example:
Positive List
To construct your XML file, use this DTD:
Negative List
The field name can be the customer’s name, the billing or shipping address, the billing or
shipping phone number, the email address or email domain, or the IP address or network
IP address. To construct your file, use this DTD:
Review List
The field name can be the customer’s name, the billing or shipping address, the billing or
shipping phone number, the email address or email domain, or the IP address or network
IP address. To construct your file, use this DTD:
File Format
You can upload data in CSV or XML format. Each file must have a unique name. In the
Business Center, the formats are processed differently:
Files in CSV format are not verified. If the Decision Manager Account Takeover
Protection Service encounters errors, you receive an error message only if the
merchant ID is incorrect. Incorrect events are not marked.
Files in XML format are verified after you upload to ensure conformance with the DTD.
If the marked events contain errors, you receive an error message immediately if the
merchant ID, format, file size, or data is incorrect.
To ensure that all transactions are verified and marked correctly, CyberSource
recommends that you use the XML format.
CSV Format
When assigning a name to a file, make sure that you use these names only if they
represent the content of your file. For example, the file MYvitalFile.csv is not processed
correctly, but the file MYcsvFile.csv is processed correctly. When creating text files, follow
this template:
Even if you do not include all of the fields, make sure that you keep the structure with all of
the commas. CyberSource recommends that you include a heading row. If you use the
heading row, make sure that you start the row with the pound sign (#). Each record is
followed by a description of the record in the Notes section.
You can also prepare your records in a spreadsheet, as shown in Figure 8.
If you use a spreadsheet, make sure that the date is formatted correctly. To do
so, format the cell as a custom number (yyyy-mm-dd).
Important
XML Format
When assigning a name to a file, make sure that you use the following names only if they
represent the content of your file. For example, the file MYcsvFile.xml is not processed
correctly, but the file MYEventFile.xml is processed correctly.
Even if you do not include all of the fields, make sure that you keep the structure. Each
record is followed by a description of the record in the Notes section.
When creating XML files, follow this XSD. The XSD is also available in the online help
where you upload your chargeback data.
Step 1 In the List Manager menu, choose List Addition > Upload File. The List Addition window
opens.
Step 2 From the List Type drop-down menu, choose a list type.
If you choose CSV, choose the character encoding from the drop-down menu:
For Western European languages, use the default.
For Japanese characters, choose Shift-JIS.
For all other cases, choose UTF-8.
Step 5 Enter your email address. You will receive a notification when the file has been uploaded.
If an entry is already on the negative list, and you upload it with a review list, it will remain
in the negative list. If an entry is already on the review list, and you upload it with a
negative list, it will be moved to the negative list.
Step 1 In the Business Center navigation panel, choose Tools & Settings > Batch Transactions
> Batch Upload Search.
Step 2 Specify a search date range and click Search. Your results display in the status grid.
Managing Velocity
You can create custom velocity rules that are specific to your type of business for each
type of event. You should revise your rules frequently to accommodate the trends in
fraudulent account attempts and in your customers' access habits.
To prevent fraud, create rules that evaluate the access habits of your customers. Use
these parameters: tracking elements, time interval, threshold, and morphing elements.
Always consider the parameters as a group. For broadest coverage, create several
related rules that differ in only one parameter.
Rules Summary
The Rules Summary window displays the merchant event velocity rules that you can use
to evaluate each event. Each rule is evaluated independently. A rule is triggered when the
number of matching transactions exceeds the threshold. You can create up to 50 event
velocity rules.
When you create an event rule, a pencil icon appears adjacent to the rules that you
create, which indicates that you can edit those rules. If you are an administrator, you can
change only the rules that you create.
Element Description
Velocity Rule Name Unique name for the rule. The parameters that define the rule appear
in the columns to the right of the name.
Tracking Elements Customer parameter that you want to track in your orders.
Time Interval Interval selected for this rule in the rule editor.
Threshold Minimum number of instances that you want to allow for this
combination of tracking element(s) and time interval before the rule is
triggered.
Info Code Identifier that is assigned by CyberSource to each rule:
MVEL-E<number>
Numbers start at 1 and increase by one for each rule. However, the
numbers that you see may not be sequential, for example: MVEL-E8,
MVEL-E2, MVEL-E1, MVEL-E11. These information codes enable you
to track the events that trigger the rule.
To create a velocity rule, choose the appropriate tab and click Add Event Velocity. To
modify a rule, click anywhere on the rule line in the summary table.
Velocity Definition
Provide the appropriate information.
Name
Enter a descriptive name for the rule.
Event Type
Choose the event type for your rule: account creation, account login, or account update.
Tracking Element
Choose up to four elements that you want to track. All of the elements that you choose
must be in the transaction and match in order to trigger the rule. You can choose custom
merchant-defined data fields or from the following:
Account number
Billing address
Billing first name
Billing last name
Billing phone number
Card BIN
Customer account ID
Customer’s IP address
Customer’s username
Customer’s password
Device fingerprint
Email address
Email domain
Merchant reference number
Proxy IP address
Shipping address
Shipping first name
Shipping last name
Shipping phone number
Shipping postal code
Smart ID
True IP address
True IP address state
Apply To
Choose the type of orders that the velocity rule should count: accepted events, rejected
events, and/or challenged events. You must choose at least one.
Time Interval
Choose a custom period or calendar period. Enter the interval that you want to allow
between events for this tracking element. The time interval can be as short as a minute or
as long as 180 days.
If you choose Custom Period, you can also exclude a period of time from the interval.
For example, you might wish to create a rule going back from 90 days to 180 days.
When you modify the time interval for a rule, be aware of the implications: you need to
allow a number of items that is proportional to the interval that you choose if you want to
detect the same relative number of fraudulent attempts.
For example, your initial interval (24 hours) has a threshold of 6 items. If you want to
reduce the interval to 8 hours:
To keep the same ratio of interval to events (4:1), reduce the threshold to 2 events.
If the risk of fraud is lower, increase the threshold to 3 events.
If the risk of fraud is higher, decrease the threshold to 1 event.
Threshold
This setting, which depends on your business practices, combines the time interval and
tracking elements specific to a customer identity. Enter the minimum number of instances
that you want to allow for this combination of tracking element(s) and time interval before
the rule is triggered. For example, if your threshold is 4, the fifth event triggers the rule
indicating possible risk.
Morphing
If desired, choose up to five morphing elements from the drop-down list..
The Decision Manager Account Takeover Protection Service returns a morphing count
when the values of the tracking elements are the same for multiple transactions, but the
morphing element value changes. You can use this value when building custom rules.
For example, to track more than two orders from the same email address and IP address
for 30 days, and note the number of different shipping addresses the orders contain:
This rule is triggered when you receive two or more orders with the same email and IP
address in 30 days. Once these orders have different shipping addresses, you also
receive the morphing count. Decision Manager returns the morphing count when it counts
two orders with different values. Even if the rule does not trigger, Decision Manager
returns the morphing count once it is greater than one.
When done, click Save if you are creating a rule, or click Apply if you are modifying a rule.
In the summary table, check the boxes for the rules that you want to delete, and click
Delete at the bottom of the table.
In the rule editor, click the Delete button at the top of the window.
When you delete a velocity rule created with an information code, the
corresponding information code is also deleted. Therefore, before deleting a
Important velocity rule, be sure to verify that the information code is not used in custom
rules.
The report uses the XSD for the Decision Manager Detail Report. You can download the
latest XSD from the Business Center. To access it, under Reports choose Report DTDs.
For more information about the XSD, see "XSD for the Decision Manager Event Detail
Report," page 82.
Step 5 From the Frequency drop-down menu, choose the interval at which the report is to be
generated:
One Time
Daily
Weekly
Monthly
Step 6 From the Report Type drop-down menu, choose Decision Manager Event Detail Report.
Your account must be enabled for the Decision Manager Account Takeover
Service for this option to be available.
Note
Step 8 From the Report Start Time drop-down menu, choose the time of day for the reports to be
generated.
Step 10 Under Report Fields, expand a category and select the additional fields that you want to
include in the report. Click Expand All to view all available fields at once.
<Transaction>
<Order>
<MerchantID>risk_bvt</MerchantID>
<RequestID>5186364085676001601540</RequestID>
<TransactionDate>2018-02-14T19:26:48-08:00</TransactionDate>
<MerchantReferenceNumber>900</MerchantReferenceNumber>
<ConnectionMethod>SCMP API</ConnectionMethod>
<Reply>
<ReasonCode>482</ReasonCode>
<ReplyCode>0</ReplyCode>
<ReplyFlag>DCHALLENGE</ReplyFlag>
<ReplyMessage>Decision is CHALLENGE.</ReplyMessage>
</Reply>
</Order>
<Customer>
<BillTo>
<FirstName>SAM100</FirstName>
<LastName>DISOUZA200</LastName>
<Address1>123 Metro blvd</Address1>
<City>San Jose</City>
<State>CA</State>
<PostalCode>91234</PostalCode>
<Country>US</Country>
<Phone>4447776666</Phone>
<Email>[email protected]</Email>
</BillTo>
<ShipTo>
<FirstName>RAJAKUMARAN</FirstName>
<LastName>GOWTHAMAN</LastName>
<Address1>96</Address1>
<Address2>powers street</Address2>
<City>Clearwater milford</City>
<State>NH</State>
<PostalCode>`03055</PostalCode>
<Country>US</Country>
</ShipTo>
</Customer>
<Payment>
<AccountSuffix>1745</AccountSuffix>
<CardBINNumber>491757</CardBINNumber>
</Payment>
<Providers>
<Provider>
<Name>DeviceFingerprint</Name>
<Field>
<Name>Device Fingerprint</Name>
<Value>b1c8be931e5845c4afaaf3f5384c4d27</Value>
</Field>
<Field>
<Name>Device Smart ID</Name>
<Value>664d93c996a24db087ead801d59fe05d</Value>
</Field>
<Field>
<Name>Device Smart ID Confidence</Name>
<Value>100.00</Value>
</Field>
<Field>
<Name>Screen Resolution</Name>
<Value>1920x1080</Value>
</Field>
<Field>
<Name>Application Type</Name>
<Value>browser_computer</Value>
</Field>
<Field>
<Name>Browser Language</Name>
<Value>en-US,en;q=0.9</Value>
</Field>
<Field>
<Name>Java Script Enabled</Name>
<Value>yes</Value>
</Field>
<Field>
<Name>Flash Enabled</Name>
<Value>no</Value>
</Field>
<Field>
<Name>Cookies Enabled</Name>
<Value>yes</Value>
</Field>
<Field>
<Name>Images Enabled</Name>
<Value>yes</Value>
</Field>
<Field>
<Name>Proxy Server Type</Name>
<Value>anonymous</Value>
</Field>
<Field>
<Name>Proxy IPaddress</Name>
<Value>103.79.116.22</Value>
</Field>
<Field>
<Name>Proxy IPaddress Attributes</Name>
<Value>_LOGIN_PASSED</Value>
</Field>
<Field>
<Name>Date Device Matched</Name>
<Value>success</Value>
</Field>
<Field>
<Name>Profiled URL</Name>
<Value>http://sl73kraknapq001.visa.com:8080/fp/
fp.jsp?0c8cb10bd310cc39fd8973b9ea445add</Value>
</Field>
<Field>
<Name>Profiling Duration</Name>
<Value>35</Value>
</Field>
<Field>
<Name>Time On Page</Name>
<Value>1587</Value>
</Field>
<Field>
<Name>AutoDPF sreekar handle Id</Name>
<Value>risk_bvt732306215172627203</Value>
</Field>
<Field>
<Name>AutoDPF reghu proxy ip</Name>
<Value>103.77.111.22</Value>
</Field>
</Provider>
</Providers>
<DecisionManagerEvents>
<TypeofEvent>login</TypeofEvent>
<EventPolicy>default</EventPolicy>
<EventInformation>
<EventInfoCodes>
<InfocodeType>device_fingerprint</InfocodeType>
<InfocodeString>AnonymousProxy,NewDevice</InfocodeString>
</EventInfoCodes>
</EventInformation>
</DecisionManagerEvents>
</Transaction>
</Report>
<xs:import schemaLocation="DecisionManagerTypes.xsd"
namespace="https://ebc.cybersource.com/ebc/reports/xsd/
DecisionManagerTypes.xsd" />
<xs:element type="tns:DecisionManagerEventDetailReport"
name="DecisionManagerEventDetailReport"/>
<xs:complexType name="DecisionManagerEventDetailReport">
<xs:sequence>
<xs:element type="tns:Transaction" name="Transaction" minOccurs="0"
maxOccurs="20000000"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Transaction">
<xs:sequence>
<xs:element type="dmt:Order" name="Order" minOccurs="0"/>
<xs:element type="dmt:Customer" name="Customer" minOccurs="0"/>
<xs:element type="dmt:Payment" name="Payment" minOccurs="0"/>
<xs:element type="dmt:AFSInformation" name="AFSInformation"
minOccurs="0"/>
<xs:element type="dmt:MarkedSuspect" name="MarkedSuspect"
minOccurs="0"/>
<xs:element type="dmt:TravelData" name="TravelData" minOccurs="0"/>
<xs:element type="dmt:MerchantDefinedData"
name="MerchantDefinedData" minOccurs="0"/>
<xs:element type="dmt:Providers" name="Providers" minOccurs="0"/>
<xs:element type="dmt:MorphingElements" name="MorphingElements"
minOccurs="0"/>
<xs:element type="tns:DecisionManagerEvents"
name="DecisionManagerEvents" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DecisionManagerEvents">
<xs:sequence>
<xs:element type="xs:string" name="TypeOfEvent" minOccurs="0"/>
<xs:element type="xs:string" name="EventPolicy" minOccurs="0"/>
<xs:element type="tns:EventInformation" name="EventInformation"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EventInformation">
<xs:sequence>
<xs:element type="tns:EventInfoCodes" name="EventInfoCodes"
minOccurs="0" maxOccurs="100000"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EventInfoCodes">
<xs:sequence>
<xs:element type="xs:int" name="InfocodeType" minOccurs="1"/>
<xs:element type="xs:string" name="InfoCodeString" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Formatting Restrictions
Unless otherwise noted, all field names are case sensitive and all fields accept special
characters such as @, #, and %.
merchantID=merchantid
merchantReferenceCode=abcd
customerID=customerid
customerFirstName=john
customerLastName=smith
billTo_firstName=Jim
billTo_lastName=Jimmy
billTo_street1=9808 Gate Ave
billTo_city=San Jose
billTo_state=CA
billTo_postalCode=95128
billTo_country=US
billTo_company=abcd
billTo_phoneNumber=6505555555
[email protected]
billTo_ipAddress=10.11.12.13
billTo_customerUserName=username
billTo_customerPassword=password1234
billTo_personalID=personalid
shipTo_firstName=shipFName
shipTo_lastName=shipLastname
shipTo_street1=1176 Stevens Creek Street
shipTo_street2=Apt #1
shipTo_city=Cupertino
shipTo_state=CA
shipTo_postalCode=71626
shipTo_country=US
shipTo_phoneNumber=5673458900
card_accountNumber=5111111111111111
card_expirationMonth=12
card_expirationYear=15
dmeService_run=true
dmeService_eventType=login
deviceFingerprintID=369365465498791792
XML Request
<urn:customerID>test_customer_account_id</urn:customerID>
<urn:customerFirstName>first</urn:customerFirstName>
<urn:customerLastName>notsimilar</urn:customerLastName>
<urn:billTo>
<urn:firstName>Jim</urn:firstName>
<urn:lastName>Jimmy</urn:lastName>
<urn:street1>9808 Gate Ave</urn:street1>
<urn:city>San Jose</urn:city>
<urn:state>CA</urn:state>
<urn:postalCode>95128</urn:postalCode>
<urn:country>US</urn:country>
<urn:company>abcd</urn:company>
<urn:phoneNumber>6505555555</urn:phoneNumber>
<urn:email>[email protected]</urn:email>
<urn:ipAddress>10.11.12.13</urn:ipAddress>
<urn:customerUserName>usernametest</urn:customerUserName>
<urn:customerPassword>passwordtest</urn:customerPassword>
<urn:personalID>personal</urn:personalID>
</urn:billTo>
<urn:shipTo>
<urn:firstName>shipFName</urn:firstName>
<urn:lastName>shipLastname</urn:lastName>
<urn:street1>1176 Stevens Creek Street</urn:street1>
<urn:street2>Apt #1</urn:street2>
<urn:city>Cupertino</urn:city>
<urn:state>CA</urn:state>
<urn:postalCode>71626</urn:postalCode>
<urn:country>US</urn:country>
<urn:phoneNumber>5673458900</urn:phoneNumber>
</urn:shipTo>
<urn:card>
<urn:accountNumber>4111111111111111</urn:accountNumber>
<urn:expirationMonth>12</urn:expirationMonth>
<urn:expirationYear>15</urn:expirationYear>
</urn:card>
<urn:dmeService run="true">
<urn:eventType>login</urn:eventType>
</urn:dmeService>
<urn:deviceFingerprintID>276249094975537664</urn:deviceFingerprintID>
For provider fields, NVP reply fields are returned in the form:
dmeReply_providerFields_provider_x_name=Provider Name
dmeReply_providerFields_x_field_x_name=Field Name
dmeReply_providerFields_x_field_x_value=Field Value
For provider fields, XML reply fields are returned in the form:
<providerFields>
<provider>
<name>provider_name_0</name>
<field>
<name>fieldname0</name>
<value>fieldvalue0</value>
</field>
</provider>
<provider>
<name>provider_name_1</name>
<field>
<name>fieldname1</name>
<value>fieldvalue1</value>
</field>
</provider>
</providerFields>
decision_provider_1_name=fingerprint
decision_provider_1_field_5_name=device_match
decision_provider_1_field_5_value=success
<providerFields>
<provider>
<name>fingerprint</name>
<field>
<name>device_match</name>
<value>success</value>
</field>
<field>
<name>first_encounter</name>
<value>2018-01-02</value>
</field>
</provider>
</providerFields>
In Table 13 the fields returned within the <name> field are described.
decision=ACCEPT
requestID=4302369440065000001547
dmeReply_additionalFields_field_0_provider=device
dmeReply_additionalFields_field_0_name=true_ip_city
dmeReply_additionalFields_field_0_value=san francisco
dmeReply_additionalFields_field_1_provider=device
dmeReply_additionalFields_field_1_name=request_duration
dmeReply_additionalFields_field_1_value=79
dmeReply_additionalFields_field_2_provider=device
dmeReply_additionalFields_field_2_name=fuzzy_device_id
dmeReply_additionalFields_field_2_value=2ea5fd0820294b48ab33d7ec13e1257e
dmeReply_additionalFields_field_3_provider=device
dmeReply_additionalFields_field_3_name=screen_res
dmeReply_additionalFields_field_3_value=2400x1350
dmeReply_additionalFields_field_4_provider=device
dmeReply_additionalFields_field_4_name=flash_version
dmeReply_additionalFields_field_4_value=WIN 17,0,0,169
dmeReply_additionalFields_field_5_provider=device
dmeReply_additionalFields_field_5_name=enabled_js
dmeReply_additionalFields_field_5_value=true
dmeReply_additionalFields_field_6_provider=device
dmeReply_additionalFields_field_6_name=agent_type
dmeReply_additionalFields_field_6_value=browser_computer
dmeReply_additionalFields_field_7_provider=device
dmeReply_additionalFields_field_7_name=fuzzy_device_id_confidence
dmeReply_additionalFields_field_7_value=100.00
dmeReply_additionalFields_field_8_provider=device
dmeReply_additionalFields_field_8_name=flash_os
dmeReply_additionalFields_field_8_value=Windows 7
dmeReply_additionalFields_field_9_provider=device
dmeReply_additionalFields_field_9_name=fingerprint_hash
dmeReply_additionalFields_field_9_value=2ea5fd0820294b48ab33d7ec13e1257e
dmeReply_additionalFields_field_10_provider=device
dmeReply_additionalFields_field_10_name=profiled_url
dmeReply_additionalFields_field_10_value=http://website.com
dmeReply_additionalFields_field_11_provider=device
dmeReply_additionalFields_field_11_name=browser_language
dmeReply_additionalFields_field_11_value=en-US,en;q=0.8
dmeReply_additionalFields_field_12_provider=device
dmeReply_additionalFields_field_12_name=true_ip_geo
dmeReply_additionalFields_field_12_value=US
dmeReply_additionalFields_field_13_provider=device
dmeReply_additionalFields_field_13_name=true_ip
dmeReply_additionalFields_field_13_value=198.241.217.15
dmeReply_additionalFields_field_14_provider=device
dmeReply_additionalFields_field_14_name=match_result
dmeReply_additionalFields_field_14_value=success
dmeReply_additionalFields_field_15_provider=device
dmeReply_additionalFields_field_15_name=enabled_ck
dmeReply_additionalFields_field_15_value=true
dmeReply_additionalFields_field_16_provider=device
dmeReply_additionalFields_field_16_name=enabled_fl
dmeReply_additionalFields_field_16_value=true
dmeReply_additionalFields_field_17_provider=device
dmeReply_additionalFields_field_17_name=enabled_im
dmeReply_additionalFields_field_17_value=false
dmeReply_additionalFields_field_18_provider=device
dmeReply_additionalFields_field_18_name=page_time_on
dmeReply_additionalFields_field_18_value=84897471
dmeReply_additionalFields_field_19_provider=device
dmeReply_additionalFields_field_19_name=true_ip_attributes
dmeReply_additionalFields_field_19_value=_LOGIN_PASSED^_WATCH
dmeReply_morphingElement_0_count=2
dmeReply_morphingElement_0_fieldName=account_number
dmeReply_morphingElement_0_infoCode=MVEL-E5226
dmeReply_cardBin=411111
dmeReply_cardIssuer=JPMORGAN CHASE BANK, N.A.
dmeReply_cardScheme=VISA CREDIT
dmeReply_binCountry=US
dmeReply_cardAccountType=001
XML Reply
<c:decision>ACCEPT</c:decision>
<c:reasonCode>100</c:reasonCode>
<c:requestToken>AhizbwSR0na8z7NcIlgWXgKf+24Z7DAE/
6GTbjgGcY265wDIHCuV</c:requestToken>
<c:dmeReply>
<c:eventInfo>ExactIDinGlobalRejectList</c:eventInfo>
<c:eventHotlistInfo>NEG-EM^NEG-SUSP</c:eventHotlistInfo>
<c:additionalFields>
<c:field>
<c:provider>device</c:provider>
<c:name>true_ip_city</c:name>
<c:value>san francisco</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>request_duration</c:name>
<c:value>116</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>fuzzy_device_id</c:name>
<c:value>2ea5fd0820294b48ab33d7ec13e1257e</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>screen_res</c:name>
<c:value>2400x1350</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>flash_version</c:name>
<c:value>WIN 17,0,0,169</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>enabled_js</c:name>
<c:value>true</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>agent_type</c:name>
<c:value>browser_computer</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>fuzzy_device_id_confidence</c:name>
<c:value>100.00</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>flash_os</c:name>
<c:value>Windows 7</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>fingerprint_hash</c:name>
<c:value>2ea5fd0820294b48ab33d7ec13e1257e</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>profiled_url</c:name>
<c:value>http://website.com</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>browser_language</c:name>
<c:value>en-US,en;q=0.8</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>true_ip_geo</c:name>
<c:value>US</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>true_ip</c:name>
<c:value>198.241.217.15</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>match_result</c:name>
<c:value>success</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>enabled_ck</c:name>
<c:value>true</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>enabled_fl</c:name>
<c:value>true</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>enabled_im</c:name>
<c:value>false</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>page_time_on</c:name>
<c:value>84887801</c:value>
</c:field>
<c:field>
<c:provider>device</c:provider>
<c:name>true_ip_attributes</c:name>
<c:value>_LOGIN_PASSED^_WATCH</c:value>
</c:field>
</c:additionalFields>
<c:morphingElement>
<c:element>
<c:infoCode>MVEL-E1001</c:infoCode>
<c:fieldName>customer_phone</c:fieldName>
<c:count>5</c:count>
</c:element>
<c:element>
<c:infoCode>MVEL-E1002</c:infoCode>
<c:fieldName>customer_ip_address</c:fieldName>
<c:count>3</c:count>
</c:element>
</c:morphingElement>
<c:field>
<c:cardBin>411111</c:cardBin>
<c:cardIssuer>JPMORGAN CHASE BANK, N.A.</c:cardIssuer>
<c:cardScheme>VISA CREDIT</c:cardScheme>
<c:binCountry>US</c:binCountry>
<c:cardAccountType>001</c:cardAccountType>
</c:field>
</c:dmeReply>
<c:reserved>
<ics_message xmlns="urn:schemas-cybersource-com:
transaction-data:ics">
<decision>ACCEPT</decision>
<dm_event_rmsg>ics_dm_event service was successful
</dm_event_rmsg>
<dm_event_device_true_ip_city>san francisco
</dm_event_device_true_ip_city>
<ics_rflag>SOK</ics_rflag>
<dm_event_device_request_duration>116
</dm_event_device_request_duration>
<ics_decision_reason_code>100</ics_decision_reason_code>
<dm_event_device_fuzzy_device_ id>
2ea5fd0820294b48ab33d7ec13e1257e
</dm_event_device_fuzzy_device_id>
<dm_event_return_code>1340000</dm_event_return_code>
<ics_rmsg>Request was processed successfully.</ics_rmsg>
<dm_event_device_screen_res>2400x1350
</dm_event_device_screen_res>
<dm_event_hotlist_info>NEG-EM^NEG-SUSP
</dm_event_hotlist_info>
<dm_event_device_flash_version>WIN 17,0,0,169
</dm_event_device_flash_version>
<merchant_ref_number>ED Testing</merchant_ref_number>
<dm_event_info>ExactIDinGlobalRejectList</dm_event_info>
<dm_event_rflag>SOK</dm_event_rflag>
<dm_event_device_enabled_js>true
</dm_event_device_enabled_js>
<dm_event_device_agent_type>browser_computer
</dm_event_device_agent_type>
<request_token>AhizbwSR0na8z7NcIlgWXgKf+24Z7DAE
6GTbjgGcY265wDIHCuV</request_token>
<dm_event_device_fuzzy_device_id_confidence>100.00
</dm_event_device_fuzzy_device_id_confidence>
<dm_event_device_flash_os>Windows 7
</dm_event_device_flash_os>
<ics_rcode>1</ics_rcode>
<dm_event_device_fingerprint_hash>
2ea5fd0820294b48ab33d7ec13e1257e
</dm_event_device_fingerprint_hash>
<dm_event_device_profiled_url>http://website.com
</dm_event_device_profiled_url>
<dm_event_device_browser_language>en-US,en;q=0.8
</dm_event_device_browser_language>
<dm_event.reason_code>100</dm_event.reason_code>
<ics_return_code>1000000</ics_return_code>
<request_id>4302369340055000001547</request_id>
<dm_event_device_true_ip_geo>US
</dm_event_device_true_ip_geo>
<dm_event_device_true_ip>198.241.217.15
</dm_event_device_true_ip>
<dm_event_device_match_result>success
</dm_event_device_match_result>
<dm_event_device_enabled_ck>true
</dm_event_device_enabled_ck>
<dm_event_device_enabled_fl>true
</dm_event_device_enabled_fl>
<dm_event_device_enabled_im>false
</dm_event_device_enabled_im>
<dm_event_device_page_time_on>84887801
</dm_event_device_page_time_on>
<dm_event_rcode>1</dm_event_rcode>
<dm_event_device_true_ip_attributes>_LOGIN_PASSED^_WATCH
</dm_event_device_true_ip_attributes>
Reason Codes
The following table describes the reason codes returned by the Simple Order API for the
Decision Manager Account Takeover Protection Service.
Reason Description
Code
100 Successful transaction.
101 The request is missing one or more required fields.
Possible action: See the reply fields missingField_0 through missingField_N for which fields are
missing. Resend the request with the complete information.
102 One or more fields in the request contains invalid data.
Possible action: See the reply fields invalidField_0 through invalidField_N for which fields are invalid.
Resend the request with the correct information.
150 Error: General system failure.
Possible action: Wait a few minutes and resend the request.
151 Error: The request was received but there was a server time-out. This error does not include time-outs
between the client and the server.
Possible action: Wait a few minutes and resend the request.
152 Error: The request was received but there was a service time-out.
Possible action: Wait a few minutes and resend the request.
202 CyberSource declined the request because the card has expired. You may also receive this reason
code if the expiration date that you provided does not match the date on file at the issuing bank. If the
payment processor allows issuance of credits to expired cards, CyberSource does not limit this
functionality.
Possible action: Request a different card or another form of payment.
231 The account number is invalid.
Possible action: Request a different card or other form of payment.
234 There is a problem with your CyberSource merchant configuration.
Possible action: Do not resend the request. Contact Customer Support to correct the configuration
problem.
481 The order is rejected by Decision Manager Account Takeover Protection Service.
482 The order is marked for challenge by Decision Manager Account Takeover Protection Service.
Formatting Restrictions
Unless otherwise noted, all fields are order and case insensitive and the fields accept
special characters such as @, #, and %.
ship_to_country Country of the shipping address. Use the two- O String (2)
character ISO Standard Country Codes.
ship_to_state State or province of the shipping address. Use the O String (2)
State, Province, and Territory Codes for the United
States and Canada.
dm_event.reason_code=100
dm_event_device_agent_type=browser_computer
dm_event_device_browser_language=en-US,en;q=0.8
dm_event_device_enabled_ck=true
dm_event_device_enabled_fl=true
dm_event_device_enabled_im=false
dm_event_device_enabled_js=true
dm_event_device_fingerprint_hash=aeaf7eef524f4aaa81cd4322706c62fc
dm_event_device_flash_os=Windows 7
dm_event_device_flash_version=WIN 17,0,0,169
dm_event_device_fuzzy_device_id=88bd3e53db9345978bff0fd85151e256
dm_event_device_fuzzy_device_id_confidence=100.00
dm_event_device_match_result=success
dm_event_device_page_time_on=196247
dm_event_device_profiled_url=http://website.com
dm_event_device_request_duration=289
dm_event_device_screen_res=1680x1050
dm_event_device_true_ip=198.241.217.15
dm_event_device_true_ip_attributes=_LOGIN_PASSED^_WATCH
dm_event_device_true_ip_city=san francisco
dm_event_device_true_ip_state=CA
dm_event_device_true_ip_geo=US
dm_event_hotlist_info=NEG-CC^NEG-SUSP
dm_event_info=ExactIDinGlobalRejectList
dm_event_velocity_morphing_0_count=3
dm_event_velocity_morphing_1_field_name=customer_ip_address
dm_event_velocity_morphing_2_info_code=MVEL-E1002
dm_event_bin_country=US
dm_event_card_account_type=001
dm_event_cc_bin=411111
dm_event_card_issuer=JPMORGAN CHASE BANK, N.A.
dm_event_card_scheme=VISA CREDIT
dm_event_rcode=1
dm_event_return_code=1340000
dm_event_rflag=SOK
dm_event_rmsg=ics_dm_event service was successful
ics_decision_reason_code=100
ics_rcode=1
ics_return_code=1000000
ics_rflag=SOK
ics_rmsg=Request was processed successfully.
merchant_ref_number=mp_dme_service
request_id=4301510080315000001547
request_token=AhizbwSR0l7jZ1azJSgWXgKf+21rqIAE/2GTbjgGcY266IFAyUtt
Reply Flags
The following table describes the reply flags returned by the SCMP API for the Decision
Manager Account Takeover Protection Service.
This appendix includes the event information codes and customer list information codes.
Note
Code Description
CON-POSNEG The order triggered both a positive and negative list match. The result of the positive list match
overrides that of the negative list match.
NEG-ACRB The transaction was automatically marked as a creditback and is on the negative list.
NEG-AFCB The transaction was automatically marked as a fraud chargeback and is on the negative list.
NEG-ANFCB The transaction was automatically marked as a non-fraud chargeback and is on the negative
list.
NEG-ASUSP The transaction was automatically marked as suspected fraud and is on the negative list.
NEG-BA The billing address is on the negative list.
NEG-BCO The billing country is on the negative list.
NEG-BIN The credit card BIN (the first six digits of the number) is on the negative list.
NEG-BINCO The country in which the credit card was issued is on the negative list.
NEG-BZC The billing postal code is on the negative list.
NEG-CC The credit card number is on the negative list.
NEG-CPF The CPF or CNPJ identification number is on the negative list.
NEG-CRB The transaction was marked as a creditback and is on the negative list.
NEG-EM The email address is on the negative list.
NEG-EMCO The country in which the email address is located is on the negative list.
NEG-EMDOM The email domain (for example, mail.example.com) is on the negative list.
NEG-FCB The transaction was marked as a fraud chargeback and is on the negative list.
NEG-HIST An event was found on the negative list.
NEG-ID The customer’s account ID is on the negative list.
NEG-IP The IP address (for example, 10.1.27.63) is on the negative list.
NEG-IP3 The network IP address (for example, 10.1.27) is on the negative list. A network IP address
includes up to 256 IP addresses.
NEG-IPCO The country in which the IP address is located is on the negative list.
NEG-NFCB The transaction was marked as a non-fraud chargeback and is on the negative list.
NEG-PEM A passenger’s email address is on the negative list.
NEG-PH The phone number is on the negative list.
NEG-PID A passenger’s account ID is on the negative list.
NEG-PIP The proxy IP address is on the negative list.
NEG-PPH A passenger’s phone number is on the negative list.
NEG-SA The shipping address is on the negative list.
NEG-SCO The shipping country is on the negative list.
Code Description
NEG-SID The Smart ID is on the negative list.
NEG-SUSP The transaction was marked as suspected fraud and is on the negative list.
NEG-SZC The shipping postal code is on the negative list.
NEG-TIP The true IP address is on the negative list.
POS-TEMP The customer is on the temporary positive list.
POS-PERM The customer is on the permanent positive list.
REV-BA The billing address is on the review list.
REV-BCO The billing country is on the review list.
REV-BIN The credit card BIN (the first six digits of the number) is on the review list.
REV-BINCO The country in which the credit card was issued is on the review list.
REV-BZC The billing postal code is on the review list.
REV-CC The credit card number is on the review list.
REV-CPF The CPF or CNPJ identification number is on the review list.
REV-CRB The transaction was marked as a creditback and is on the review list.
REV-EM The email address is on the review list.
REV-EMCO The country in which the email address is located is on the review list.
REV-EMDOM The email domain (for example, mail.example.com) is on the review list.
REV-FCB The transaction was marked as a fraud chargeback and is on the review list.
REV-ID The customer’s account ID is on the review list.
REV-IP The IP address (for example, 10.1.27.63) is on the review list.
REV-IP3 The network IP address (for example, 10.1.27) is on the review list. A network IP address
includes up to 256 IP addresses.
REV-IPCO The country in which the IP address is located is on the review list.
REV-NFCB The transaction was marked as a non-fraud chargeback and is on the review list.
REV-PEM A passenger’s email address is on the review list.
REV-PH The phone number is on the review list.
REV-PID A passenger’s account ID is on the review list.
REV-PIP The proxy IP address is on the review list.
REV-PPH A passenger’s phone number is on the review list.
REV-SA The shipping address is on the review list.
REV-SCO The shipping country is on the review list.
REV-SID The Smart ID is on the review list.
REV-SUSP The transaction was marked as suspected fraud and is on the review list.
REV-SZC The shipping postal code is on the review list.
REV-TIP The true IP address is on the review list.
This appendix includes code examples for Android and iOS mobile implementations.
@Override
protected void onCreate(Bundle savedInstanceState)
{
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.login_activity);
/*
* When the device rotates the activity will be destroyed and created again, although
* before destroying the state of the app will be written in a Bundle. To avoid
* unnecessary profiling (i.e. when device rotates) we check the bundle here and skip
* profiling if the device is rotated.
* */
if(savedInstanceState == null)
{
//Resetting the status of the application to make sure we have a clean activity
reset();
/*
* Creating a config instance to be passed to the init() method. Note this
* instance must include orgId and application context otherwise the init()
* method will fail.
* */
Config config = new Config().setOrgId(ORG_ID // (REQUIRED) Organisation ID
.setFPServer(FP_SERVER)// (REQUIRED) Enhanced
fingerprint server
.setContext(getApplicationContext())
// (REQUIRED) Application Context
.setTimeout(10, TimeUnit.SECONDS)
// (OPTIONAL) Set the connection
//Init was successful or there is a valid instance to be used for further calls.
//Fire a profile request
Log.e(TAG, "Successfully init-ed ");
doProfile();
}
}
void doProfile()
{
// (OPTIONAL) Retrieve the version of the SDK
Log.i(TAG, "Using: " + TrustDefender.version);
// Fire off the profiling request. We could use a more complex request,
// but the minimum works fine for our purposes.
Profile.Handle profilingHandle =
TrustDefender.getInstance().doProfileRequest(options,
new CompletionNotifier()); // (REQUIRED) The end notifier must be passed to
the doProfileRequest() method
/*
* profilingHandle can also be used to cancel this profile if needed
*
* profilingHandle.cancel();
* */
}
/**
* Used for notification from the SDK. Any code that needs to be run upon profiling
* completion should be called from here.
* <p>
* Note: Be careful about calling UI update functions from here, as any callbacks will
* not happen from the UI thread.
* </p>
*/
private class CompletionNotifier implements EndNotifier
{
/**
* This gets called when the profiling has finished.
* We have to be careful here because we are not going to be called on the UI thread,
* and if we want to update UI elements we can only do it from the UI thread.
*/
@Override
public void complete(Profile.Result result)
{
//Get the session id to use in API call (AKA session query)
m_sessionID = result.getSessionID();
- (instancetype) init
{
self = [super init];
_sessionID = nil;
_timeout = @10;
_profile = [THMTrustDefender sharedInstance];
// The [_profile configure] method is effective only once and subsequent calls to it
// will be ignored. By having a dipatch_once here we make sure configure is called
// only once, although using a dispatch_once is not technically required.
dispatch_once(&configureOnce,
^{
// The profile.configure method is effective only once and subsequent
// calls to it will be ignored.
// Note that configure may throw NSException if NSDictionay key/
// value(s) are invalid.
// This only happen due to programming error, therefore we don't
// catch the exception to make sure there is no error in our
// configuration dictionary
[_profile configure:@{
THMOrgID : ORG_ID,
// (REQUIRED) Enhanced fingerprint server
THMFingerprintServer : FP_SERVER,
// (OPTIONAL) Set the connection
// timeout, in seconds
THMTimeout : _timeout,
// (OPTIONAL) If Keychain Access sharing groups
// are used, specify like this
THMKeychainAccessGroup:
@"TEAMID.com.threatmetrix",
// (OPTIONAL) Register for location service
// updates
// Note that this call can prompt the user for
// permissions. The related call
// registerLocationServices will only activate
// location services have already been granted.
-(void)doProfile
{
// (OPTIONAL) Retrieve the version of the mobile SDK
NSLog(@"Using: %@", self.profile.version);
// Session id can be collected here (to use in API call (AKA session query))
self.sessionID = profileHandle.sessionID;
NSLog(@"Session id is %@", self.sessionID);
/*
override init()
{
super.init()
]),
"Configuration failed")
}
func doProfile()
{
// (OPTIONAL) Retrieve the version of the mobile SDK
NSLog("Using \(profile.version)")
loginOkay = false
if(status == .ok)
{
// The profiling successfully started
NSLog("Profiling started successfully")
}
else
{
// We errored out, allow the login to proceed
// The most common case of this error is THM_NotYet which means another
// profiling is in progress and we should wait for that one to finish.
loginOkay = true
}
}
}
1 What is a cookie?
A cookie is a small file, typically consisting of letters and numbers, which is downloaded to
and stored on a user’s computer or other electronic device when the user visits certain
web sites. Information from cookies is used for a variety of purposes. For example,
cookies can be used to enhance security or configure a web site to make it more
convenient for a visitor.
Yes, but only if you are using device fingerprinting or the Decision Manager Account
Takeover Protection Service. If you are not using device fingerprinting or the Decision
Manager Account Takeover Protection Service, Decision Manager does not set any
cookies.
3 What purpose does the cookie serve? Will the service function without the cookie?
If you are using device fingerprinting or the Decision Manager Account Takeover
Protection Service, one cookie is dropped as described in the following chart:
1 This information is not intended to be legal advice. CyberSource recommends that you seek advice from
independent counsel regarding your obligations regarding the use of cookies under applicable law.
No. CyberSource is a third-party vendor and does not have contact or a direct relationship
with your users. Under your agreement with CyberSource, it is the merchant’s
responsibility to provide their users any legally required notices or obtain necessary
consent in order to set cookies.