Riskified
When processing transactions through the IXOPAY platform, Riskified external risk checks can be utilized to enhance your transaction security. This guide covers the fields Riskified expects and the steps required to initiate these checks.
Transaction fields
Riskified fraud screening relies primarily on standard fields already used by the Transaction API, enriched with a small set of extraData keys that have no standard field equivalent.
Standard fields
customer object fields
items[] array fields
Include one entry per product in the order.
l2l3Data fields
extraData fields
Custom key-value pairs passed inside the transaction-level extraData object.
customer.extraData fields
Custom key-value pairs passed inside the extraData object of the customer object.
Automatically populated fields
These order-level fields are derived entirely from existing transaction and merchant data — there’s nothing to configure.
Payment details
IXOPAY platform also builds payment_details automatically from the transaction’s card and BIN data. The shape sent depends on the payment method, and both shapes are sent with the decide and decision calls.
Card payments :
PayPal payments
Decision
decision is sent automatically once the transaction succeeds, to confirm the approval to Riskified. It carries the same payment_details shape as decide, plus:
Checkout denied
If a payment or validation error occurs after the initial decide call, IXOPAY platform automatically sends a minimal checkoutDenied call:
Initializing the risk script
Riskified correlates its device fingerprinting beacon with an order via a session ID (cart_token). How that session ID reaches the transaction depends on whether you use payment.js or an IXOPAY platform hosted payment page.
- Using payment.js
- Without payment.js
With payment.js, the Riskified beacon is handled automatically once an active Riskified risk rule is configured: the beacon loads on the merchant’s page, and its session ID is attached to the payment token as additionalData.riskified_session_id during tokenization. When the transaction is created with that transactionToken, the session ID is carried over as extraData["riskified_session_id"] before the risk check runs.
Tokenize first, then create the transaction. The beacon session ID travels with the token — a transaction created before tokenization cannot carry it and falls back to the transaction UUID as cart_token.
If Init Scripts Automatically is disabled on the connector, initialize the beacon manually:
If your payment form is an IXOPAY platform hosted payment page instead of payment.js or your own checkout page, the Riskified decide call is made when the transaction is created — before the customer opens the payment page — so a session ID generated on the page can never reach that call. Instead, seed the beacon with the transaction UUID : IXOPAY platform automatically sends the UUID as cart_token when no riskified_session_id extra data is present.
Add to the payment template:
Remember to accurately include all necessary information for successful risk checks with Riskified. If you encounter issues, review your connector configuration or the extra data you’re providing.