You are on page 1of 8

Customer Name BliBli

Make a free account Payment Abuse https://siftscience.com/signup

1 week: Testing phase Test data in Sandbox account


Send REST API events (details on "User Flow" sheet) https://siftscience.com/developers/docs/curl/events-api
Install the JS snippet for all web traffic https://siftscience.com/developers/docs/javascript/javascript-api

Sync before going live Send full live data to Sandbox API Keys
Sift will take a look, confirm data values look good.

"Go live" Switch data to Production account


Send feedback to Sift through Decisions API and console https://siftscience.com/developers/docs/curl/decisions-api/overview
(optional) Backfill data for previous 3 months https://siftscience.com/resources/tutorials/sending-historical-data

Client Libraries
Java https://siftscience.com/resources/plugins/client-libraries#java
Integration Phase User action Sift API Event Comments
Creates account $create_account
Updates account details $update_account Send updated fields only

After user attempts to checkout but before


charging the payment method $create_order
The result for charging the payment method $transaction
User changes order details $update_order Send ALL order details sent previously

User logs-in $login


User logs-out $logout
Event: $create_account/$update_account Key ✓ complete
https://siftscience.com/developers/docs/curl/events-api/reserved-events/create-account m missing
✘ incomplete/incorrect
Use Synchronous Workflows? No n/a not available

Field Type Sample Status Sift comments BliBli comments


$user_id string
$session_id string m not sent to backend microservice that create/update the user
$user_email string
$ip string "192.168.1.1" m not sent to backend microservice that create/update the user
$name string not available during create - avaliable on update
$phone string "+1-415-555-2323" not available during create - avaliable on update

$payment_methods [ ] array on update, can be available only if the user opt to save their cc token w blibli
$payment_type enum e.g "$credit_card"
$payment_gateway enum e.g "$stripe" we have two: http://speedorder.asia/2016/, https://midtrans.com/
$card_bin string first 6 digits "123456" received by blibli after payment is done on payment gateway side
$card_last4 string last 4 digits "6789" received by blibli after payment is done on payment gateway side
$billing_address { } address can be edited when making an order, we use the default address as billing address.
$name string
$address1 string
$city string
$region string m In Indonesia: Contry -> Province -> City -> District -> Sub-district
$country string 2-letter country code "US", "ES"
$phone string "+1-415-555-2323"
$zipcode string zipcode is tied to a subdistrict
$shipping_address the default are set as billing address
$name string
$address1 string
$city string
$region string m
$country string 2-letter country code "US", "ES"
$phone string "+1-415-555-2323"
$zipcode string

Custom Fields
Event: $create_order/$update_order Key ✓ complete
https://siftscience.com/developers/docs/curl/events-api/reserved-events/create-order m missing
✘ incomplete/incorrect
Use Synchronous Workflows? No n/a not available

Field Type Sample Status Sift comments BliBli comments


$user_id string
$session_id string m Same on account create/update. see account create/update
$order_id string "12345"
$user_email string
$ip string "192.168.1.1" for this one I think its available, we use it for our in house rule based fraud system
$amount int in micros e.g $1 = 1000000
$currency_code string "USD"
$shipping_address
$name string
$address1 string
$city string
$region string m see account create/update
$country string 2-letter country code "US", "ES"
$phone string "+1-415-555-2323"
$zipcode string see account create/update
$billing_address { } address
$name string
$address1 string
$city string
$region string m see account create/update
$country string 2-letter country code "US", "ES"
$phone string "+1-415-555-2323"
$zipcode string
$items [ ] array TODO: check list of the whole reserved items
$item_id string
$product_title string
$price int in micros e.g $1 = 1000000
$currency_code string MXN, USD, CAD, EUR
$quantity int
$brand string
$category string
$tags string [ ] [fashion, shoes] m what is example for this data?
If it's avaliable, you can use this.
However, if the product doesn't
$size string have this field, it can be removed. not all product has this, we use free text for this field, merchant can put almost anything
$payment_methods [ ] array
$payment_type enum e.g "$credit_card", "points", "store_credit"
$payment_gateway enum e.g "$paypal" see account create/update
$card_bin string first 6 digits "123456" see account create/update
$card_last4 string last 4 digits "6789" see account create/update
$promotions [ ] promotion [ ]
$promotion_id string e.g "COUPON140"
$description string e.g promo code "$15 off"
$seller_user_id string m in blibli each order-item can be from different seller, it should be a field inside the "item" document
$expedited_shipping bool

Custom Fields
channel string web/ios/android
traffic_source string direct, google, facebook.com
traffic_medium string organic, cpc, direct, referral
first_order bool TRUE, FALSE m any order with any status or only order with specific status?
Event: $transaction Key ✓ complete
https://siftscience.com/developers/docs/curl/events-api/reserved-events/transaction m missing
✘ incomplete/incorrect
Use Synchronous Workflows? No n/a not available

Field Type Comments Status Sift comments BliBli comments


$user_id string
$order_id string "12345"
$transaction_id string "12345"
$transaction_type enum e.g $sale/$void/$refund/$auth/$capture
$transaction_status enum $success/$failure/$pending
$amount int in micros e.g $1 = 1000000
$currency_code string "USD"
$user_email string
$billing_address { } address
$name string
$address1 string
$city string
$region string m see account create/update
$country string 2-letter country code "US", "ES"
$zipcode string m
$phone string "+1-415-555-2323"
$payment_method { }
$payment_type enum e.g "$credit_card"
$payment_gateway enum e.g "$stripe" see account create/update
$card_bin string first 6 digits "123456" see account create/update
$card_last4 string last 4 digits "6789" see account create/update
$cvv_result_code string m need to check if we get this or not from payment gateway
$avs_result_code string m need to check if we get this or not from payment gateway
$session_id string m is this the same session id from browser session_id?, the transaction update can come from backend system of payment gateway, not via browser.

Custom Fields
transaction_3ds bool This is to mark the transactions that were sentthis
to 3ds.
will be fine
Event: $login / $logout Key ✓ complete
https://siftscience.com/developers/docs/curl/events-api/reserved-events/login m missing
✘ incomplete/incorrect
Use Synchronous Workflows? No n/a not available

Field Type Sample Status Sift comments BliBli comments


$ip string "192.168.1.1" m see account create/update
$user_id string
$session_id string m see account create/update
$login_status ($login only) enum "$success", "$failure"
$browser
$user_agent string m not sent to backend microservice that validate login
$app n/a we won't be doing app for the trial
$os string n/a
$os_version string n/a
$device_manufacturer string n/a
$device_model string n/a
$device_unique_id string n/a
$app_name string n/a
$app_version string n/a
Steps Notes
Create Decisions in Console https://siftscience.com/resources/tutorials/decisions#create-decisions
Configure Webhooks for Decisions https://siftscience.com/resources/tutorials/decisions#connecting-decisions
Send Decisions at appropriate times via API https://siftscience.com/developers/docs/curl/decisions-api/apply-decisions
Decisions
https://siftscience.com/resources/tutorials/decisions#create-decisions

Decisions to be configured in the Sift Console

Decision Name Decision ID Abuse Type Category Entity Webhook URL


Looks Bad - Known Fraudster looks_bad_known_fraudster Payment Abuse Block User
Looks Bad - Stolen Credit Card looks_bad_bad_cc Payment Abuse Block User
Looks Good - Employee looks_good_employee Payment Abuse Accept User

When to send a decision via API

Business Decision Decision ID Source


Block a known fraudster returning looks_bad_known_fraudster MANUAL_REVIEW
Block a user using a bad credit card looks_bad_bad_cc MANUAL_REVIEW
Allow an Employee to make purchase/order
looks_good_employee AUTOMATED_RULE

You might also like