Skip to content

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 FraudScoringStrategy implementation registered under the provider name riskified (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 to POST {base}/decide (sandbox or production) and maps the returned order status:
    • approvedallow (guarantee status approved)
    • declinedblock (guarantee status declined)
    • anything else → review (guarantee status pending)
  • 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 to POST {base}/decision with the order ID and decision type.
  • Checkout and login scoring return allow with score 0 by design — Riskified scoring happens post-authorization only. For pre-payment screening, see IPQualityScore or MaxMind minFraud.

Setup

  1. Enable Riskified for the channel under Settings > Extensions (extension enablement is per-channel).
  2. Provide the shop domain registered with Riskified and the HMAC auth token. auth_token is a secret config field (encrypted at rest and masked in the admin); the strategy factory also falls back to the RISKIFIED_SHOP_DOMAIN and RISKIFIED_AUTH_TOKEN environment variables — see the credential-resolution note under Operational Notes.
  3. Leave sandbox on while testing; production traffic goes to https://wh.riskified.com/api, sandbox to https://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-DOMAIN and X-RISKIFIED-HMAC-SHA256 headers (API version 2 Accept header).
  • Fixed decision scores — Riskified returns a status rather than a numeric score; the extension maps approved to 0.1, declined to 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 block decision does not stop the charge; the order's fraud status is set to pending_review and the order moves to HeldForReview. A review decision sets pending_review without changing order status.
  • Fail-open — with missing credentials, or on any API failure (logged as a warning), the strategy returns allow with 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.