Kount Fraud Management
Leading AI-Driven Fraud Prevention for eCommerce and mCommerce
Kount Fraud Management sets the industry standard with its advanced AI-driven solutions designed to prevent fraud in eCommerce, mCommerce, and card-not-present transactions. What sets Kount apart is its use of adaptive AI, combining both supervised and unsupervised machine learning to deliver real-time risk analysis and fraud detection.
Kount effectively identifies and blocks fraudulent transactions by analyzing numerous data points before a transaction is processed. The Kount Data Collector plays a crucial role in this process, and we’ve made it easy to integrate into your checkout pages using our Payment API or Collect.js. Running seamlessly in the background, the Kount Device Data Collector gathers essential data as customers proceed through the checkout process on your eCommerce site, ensuring robust fraud prevention without disrupting the user experience.
Kount Variable
When a customer is on a payment page, the Kount library will provide the following, which you must submit to the payment API in order for Kount to function properly:
Variable | Description | When Received |
---|---|---|
transaction_session_id | A single use session ID used by Kount to link the transaction and Data Collector information together. This ID should be generated every time a payment form is loaded by the cardholder, and be random/unpredictable (do not use sequential IDs). This ID should not be reused within a 30 day period. | After the Kount data collector has run |
Quick Start Guide
2. Initialize Kount
kount = gateway.getKount()
3. Run the Kount Data Collector
Call Kount's createSession()
and use then()
to retrieve the session ID.
- If running Kount with Collect.js: Render a Collect.js form to collect the credit card information. Use Collect.js's
configure()
method to supply a callback. The callback will provide the Collect.js payment token in place of the credit card details.
4. Create a Javascript object with the details of the transaction.
The details should include:
cardNumber
,cardExpMonth
,cardExpYear
,-
If running Kount with Collect.js,
paymentToken
will replace card details.
-
currency
,amount
,email
city
,address1
,country
,zip
,first_name
,last_name
, andtransaction_session_id
.
![](https://go.nmi.com/l/153691/2023-11-30/4fs6y4/153691/1701364617etCAlNSp/Non_Compete.png)
![](https://go.nmi.com/l/153691/2023-11-30/4fs71x/153691/1701364621blZe0v5A/RKI.png)
5. Submit the transaction data via the Payment API with your private key.
Example
<html>
<body>
<script src="https://secure.nmi.com/js/v1/Gateway.js"></script>
<script>
// Initialize Gateway.js, use own Public Key
const gateway = Gateway.create('collect_checkout_0000000000000000000000000');
// Initialize the Kount service
const kount = gateway.getKount();
// Run Kount
kount.createSession().then((res) => {
//Store session id
const transactionSessionId = res;
//Code goes here...
console.log(transactionSessionId);
});
// Listen for any errors that might occur
gateway.on('error', function (e) {
console.error(e);
});
</script>
</body>
</html>
<html>
<body>
<label>Credit Card Number</label>
<div id="ccnumber"></div>
<label>CC EXP</label>
<div id="ccexp"></div>
<label>CVV</label>
<div id="cvv"></div>
<button id="payButton">Pay Now</button>
<script src="https://secure.nmi.com/js/v1/Gateway.js"></script>
<script
src="https://secure.nmi.com/token/Collect.js"
data-tokenization-key="000000-111111-222222-333333"
></script>
<script>
// Initialize Gateway.js, use own Public Key
const gateway = Gateway.create('collect_checkout_0000000000000000000000000');
// Initialize the Kount service
const kount = gateway.getKount();
// Run Kount
kount.createSession().then((res) => {
//Store session id
const sessionId = res;
//Run CollectJS Configure
CollectJS.configure({
variant: 'inline',
callback: (e) => {
const options = {
paymentToken: e.token,
currency: 'USD',
amount: '1000',
email: '[email protected]',
phone: '8008675309',
city: 'New York',
state: 'NY',
address1: '123 First St.',
country: 'US',
firstName: 'John',
lastName: 'Doe',
postalCode: '60001',
transactionSessionId: sessionId
};
fetch('direct-post-back-end.php', {
method: 'POST',
body: JSON.stringify({
...options,
})
});
}
});
gateway.on('error', function (e) {
console.error(e);
});
});
</script>
</body>
</html>
<?php
$jsonContent = json_decode(file_get_contents('php://input'));
$fields = array(
'security_key' => '01234567890123456789012345678901',
'payment_token' => $jsonContent->paymentToken,
'amount' => '10.00',
'email' => $jsonContent->email,
'phone' => $jsonContent->phone,
'city' => $jsonContent->city,
'address1' => $jsonContent->address1,
'country' => $jsonContent->country,
'first_name' => $jsonContent->firstName,
'last_name' => $jsonContent->lastName,
'zip' => $jsonContent->postalCode,
'transaction_session_id' => $jsonContent->transactionSessionId
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://secure.nmi.com/api/transact.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $fields
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Updated about 1 month ago