Secure your business from login to chargeback
Stop fraud, break down data silos, and lower friction with Sift.
- Achieve up to 285% ROI
- Increase user acceptance rates up to 99%
- Drop time spent on manual review up to 80%
If your application uses JavaScript, add our snippet 
and make sure to set _user_id to the empty string.
When the anonymous user takes an action you send an Events API event for, set the $user_id value to an 
empty string. Set $session_id to match the value provided in the JavaScript snippet (if applicable)
Here is a sample $add_item_to_cart event:
{
  "$type"       : "$add_item_to_cart",
  "$api_key"    : "YOUR_API_KEY",
  "$session_id" : "gigtleqddo84l8cm15qe4il",
  "$user_id"    : "",     // Blank because the $user_id is still unknown          
  "$item"       : {
    // item info
  }
}
import sift
client = sift.Client(api_key='{apiKey}', account_id='{accountId}')
properties = {
  # Required Fields
  "$user_id"    : "",     #  Blank because the $user_id is still unknown
  "$session_id" : "gigtleqddo84l8cm15qe4il",
  "$item"       : {
    # item info
  }
}
response = client.track("$add_item_to_cart", properties)
require "sift"
client = Sift::Client.new(:api_key => "YOUR_API_KEY")
properties = {
  "$user_id"    => "",     # Blank because the $user_id is still unknown
  "$session_id" => "gigtleqddo84l8cm15qe4il",
  "$item"       => {
    # item info
  }
}
response = client.track("$add_item_to_cart", properties)
require 'sift-php/lib/Services_JSON-1.0.3/JSON.php';
require 'sift-php/lib/SiftRequest.php';
require 'sift-php/lib/SiftResponse.php';
require 'sift-php/lib/SiftClient.php';
require 'sift-php/lib/Sift.php';
$client = new SiftClient(array('api_key' => 'YOUR_API_KEY'));
$properties = array(
  '$user_id'    => '',      // Blank because the $user_id is still unknown
  '$session_id' => 'gigtleqddo84l8cm15qe4il',
  '$item'       => array(
    // item info
  )
);
$response = $client->track('$add_item_to_cart', $properties);
Once a user logs in, creates an account, or takes an anonymous action you need a risk assessment on (such as 
placing an order), send an Events API event with the same session id value you've been passing for the 
anonymous activity as well as a value for $user_id. In cases where you don't have a concept of a user 
id, you can pass another unique identifier for the entity you need a risk assessment on (e.g., email address 
or order/transaction id). Once we see an event with both the user and session id, we'll tie the anonymous 
activity together with that event.
Notes:
$user_id value before you can get a risk assessment.$user_email field if the event has one.Here is a sample $create_order event:
// Sample $create_order event
{
  "$type"             : "$create_order",
  "$api_key"          : "YOUR_API_KEY",
  "$user_id"          : "billy_jones_301",
  "$session_id"       : "gigtleqddo84l8cm15qe4il",
  "$order_id"         : "ORDER-28168441",
  "$user_email"       : "bill@gmail.com",
  // other fields...
}
import sift
client = sift.Client(api_key='{apiKey}', account_id='{accountId}')
properties = {
  "$user_id"          : "billy_jones_301",
  "$session_id"       : "gigtleqddo84l8cm15qe4il",
  "$order_id"         : "ORDER-28168441",
  "$user_email"       : "bill@gmail.com",
  # other fields
}
response = client.track("$create_order", properties)
require "sift"
client = Sift::Client.new(:api_key => "YOUR_API_KEY")
properties = {
  "$user_id"          => "billy_jones_301",
  "$session_id"       => "gigtleqddo84l8cm15qe4il",
  "$order_id"         => "ORDER-28168441",
  "$user_email"       => "bill@gmail.com",
  # other fields...
}
response = client.track("$create_order", properties)
require 'sift-php/lib/Services_JSON-1.0.3/JSON.php';
require 'sift-php/lib/SiftRequest.php';
require 'sift-php/lib/SiftResponse.php';
require 'sift-php/lib/SiftClient.php';
require 'sift-php/lib/Sift.php';
$client = new SiftClient(array('api_key' => 'YOUR_API_KEY'));
$properties = array(
  '$user_id'          => 'billy_jones_301',
  '$session_id'       => 'gigtleqddo84l8cm15qe4il',
  '$order_id'         => 'ORDER-28168441',
  '$user_email'       => 'bill@gmail.com',
  // other fields ...
);
$response = $client->track('$create_order', $properties);Stop fraud, break down data silos, and lower friction with Sift.