Skip to content
pluginloom

Order risk

Gateway risk data: WooPayments, Stripe, PayPal and BankBridge

Which order meta keys ChargeWarden reads from WooPayments, the WooCommerce Stripe Gateway, PayPal Payments and BankBridge, and the optional Stripe Radar lookup.

Last updated by the PluginLoom team

Payment gateways already make their own risk checks. ChargeWarden reads what they save on the order and turns it into scored reasons. Every key below was read from each gateway's source code on GitHub on 24 October 2026, at the versions listed.

WooPayments (11.2.0)#

From includes/class-wc-payments-order-service.php in Automattic/woocommerce-payments (opens in a new tab):

Meta keyWhat it holdsHow ChargeWarden uses it
_charge_risk_levelStripe's outcome.risk_level: normal, elevated or highestElevated or highest risk rule
_wcpay_fraud_outcome_statusallow, review or block from WooPayments fraud protection rulesGateway review rule when review or block
_wcpay_early_fraud_warningAn early fraud warning from the card issuerGateway review rule

WooCommerce Stripe Gateway (11.1.1)#

The Stripe gateway (opens in a new tab) does not save Radar's risk level or score on the order. It reads outcome.type while processing the charge, and when Radar opens a review it moves the order to On hold and saves _stripe_status_before_hold. The charge ID is the order's transaction ID.

ChargeWarden therefore:

  • scores "Radar opened a review and the order is on hold" from _stripe_status_before_hold, and
  • optionally (Settings > Order risk > "Read Stripe Radar risk from the Stripe API", off by default) asks Stripe once per order for the charge's outcome.risk_level and outcome.risk_score, using the secret key already saved in your Stripe gateway settings. The answer is cached on the order. You can supply a different key with the chargewarden_stripe_secret_key filter.

WooCommerce PayPal Payments (4.2.0)#

From modules/ppcp-wc-gateway/src/Gateway/PayPalGateway.php in woocommerce-paypal-payments (opens in a new tab):

Meta keyWhat it holdsHow ChargeWarden uses it
_ppcp_paypal_fraud_resultavs_code, cvv2_code, response_code (card payments only)Gateway review rule when the security code did not match (N) or the address did not match (N, C)
_ppcp_paypal_3DS_auth_result3D Secure result including liability shiftGateway review rule when liability did not shift
_ppcp_paypal_card_last_digitsCard last fourCard velocity counting after a failure

PayPal Payments does not store seller protection status on the order, so ChargeWarden cannot read it.

BankBridge#

BankBridge saves _bankbridge_signal_score when Plaid Signal is turned on in its gateway. ChargeWarden adds the "ACH Signal score high" rule at your threshold (default 70). ACH entries, returns and account validation are covered in ACH and Nacha monitoring.

Card details for velocity limits#

Most card gateways tokenise the card in the browser, so the BIN and last four are not posted to your server. ChargeWarden counts per card only when a gateway exposes them: PayPal's _ppcp_paypal_card_last_digits after a payment, or the chargewarden_order_card and chargewarden_request_card filters you can use for other gateways. Without card data, the IP, network, email, browser and session limits still apply.

Another gateway?#

Use the chargewarden_gateway_risk filter. Return an array with label, risk_level (normal, elevated or highest), risk_score and review (a short reason, or empty).

Was this page helpful?