Riskified¶
Riskified provides guaranteed fraud protection with chargeback reimbursement. After a payment is authorized, the extension submits the order to Riskified's decide endpoint over an HMAC-SHA256-authenticated API and receives an approve / decline / under-review decision — approved orders are covered by Riskified's chargeback reimbursement. Use it when you want a post-authorization guarantee decision rather than pre-payment screening.
At a glance
| Extension id | riskified |
| Category | security |
| Version | 1.0.0 |
| Provides | Fraud scoring strategy (fraud_scoring) |
| External account | Riskified account (registered shop domain + HMAC auth token) |
What It Provides¶
- A
FraudScoringStrategyimplementation registered under the provider nameriskified(per-provider registration). The core fraud engine resolves it with channel-enablement awareness — see Fraud Scoring Extensions. - Post-payment scoring (
score_post_payment) — the primary method. Submits the order toPOST {base}/decide(sandbox or production) and maps the returned order status:approved→allow(guarantee statusapproved)declined→block(guarantee statusdeclined)- anything else →
review(guarantee statuspending)
- Guarantee tracking — the returned score carries
guarantee_status, the Riskified order ID as the provider transaction ID, and signals (status,description,category). - Order submission payload — order total and currency, customer email, browser IP, shipping and billing addresses, payment details (card BIN, masked last four, AVS/CVV result codes), line items (title, quantity, price, SKU), device-fingerprint session token with user agent, and customer profile (name, email, account created date, order count).
- Decision feedback (
report_decision) — posts the merchant's decision back toPOST {base}/decisionwith the order ID and decision type. - Checkout and login scoring return
allowwith score 0 by design — Riskified scoring happens post-authorization only. For pre-payment screening, see IPQualityScore or MaxMind minFraud.
Setup¶
- Enable Riskified for the channel under Settings > Extensions (extension enablement is per-channel).
- Provide the shop domain registered with Riskified and the HMAC auth token.
auth_tokenis a secret config field (encrypted at rest and masked in the admin); the strategy factory also falls back to theRISKIFIED_SHOP_DOMAINandRISKIFIED_AUTH_TOKENenvironment variables — see the credential-resolution note under Operational Notes. - Leave
sandboxon while testing; production traffic goes tohttps://wh.riskified.com/api, sandbox tohttps://sandbox.riskified.com/api.
Configuration Reference¶
| Key | Type | Required | Secret | Description |
|---|---|---|---|---|
shop_domain |
string | Yes | No | Your shop domain registered with Riskified |
auth_token |
string | Yes | Yes | HMAC authentication token from Riskified |
sandbox |
boolean | No | No | Use Riskified sandbox environment for testing. Default: true |
Permissions¶
This extension declares no permissions in its manifest.
Operational Notes¶
Credential resolution
The strategy proxy registered at boot builds the scorer per call without a channel-config payload, so the shop domain, auth token, and sandbox flag resolve from the RISKIFIED_SHOP_DOMAIN / RISKIFIED_AUTH_TOKEN environment variables and the code defaults above at scoring time. Note that the code default is sandbox mode — without explicit configuration, requests go to the sandbox endpoint.
- Request signing — every request body is signed with HMAC-SHA256 using the auth token and sent with the
X-RISKIFIED-SHOP-DOMAINandX-RISKIFIED-HMAC-SHA256headers (API version 2Acceptheader). - Fixed decision scores — Riskified returns a status rather than a numeric score; the extension maps
approvedto 0.1,declinedto 0.9, and everything else to 0.5 on the platform's 0–1 risk scale. - Post-authorization means no charge abort — because scoring runs after payment authorization, a
blockdecision does not stop the charge; the order's fraud status is set topending_reviewand the order moves toHeldForReview. Areviewdecision setspending_reviewwithout changing order status. - Fail-open — with missing credentials, or on any API failure (logged as a warning), the strategy returns
allowwith score 0. Order submission uses a 15-second timeout; decision feedback uses 10 seconds. - One provider per channel — if more than one fraud extension is enabled on a channel, checkout logs a warning and uses the alphabetically-first provider name.