Skip to content

Troubleshooting our Fraud Detection solution

Last updated: March 1, 2023

This page explains why certain errors happen, and how to fix them.

Null values

Be mindful when setting rules that may lead to NULL values. If you set a rule such as :billing_address_country: = :shipping_address_country:, but do not provide either address in your payment request, the values being compared are NULL = NULL, which will be equal to true. Conversely, if you only provide one of the addresses, this rule will be equal to false.

The EXISTS and IS_MISSING operators evaluate whether a value is NULL. A value will only be considered as NULL if specified information is not provided.

Empty values and white spaces are considered different. So when comparing 2 values that have different white spacing, it will be evaluated as different even if the text is the same.

Case sensitivity

The rules for case sensitivity differ, depending on the type of comparison.

  • Property-to-property comparison is not case-sensitive. Examples include :shipping_address_line1: = :billing_address_line1:, :billing_address_city: = 'london' or even :currency: IN [“EUR“, “gbp“, “UsD”]
  • Property-to-custom list comparison is case-sensitive. Examples include $product_code IN @high_risk_products


For case-sensitive comparisons, currency and country properties expect codes in upper case.


Metadata keys are not case-sensitive, but values are case-sensitive. If 2 values are defined that only differ by case, only the most recently defined one will be saved. Therefore, we recommend give all your metadata pairs distinct keys.

For example, if couponCode = "NY2018" and COUPONcode = "NEW12" are defined in metadata, only NEW12 is kept. In the rule builder, $couponcode = "NEW12" will evaluate to true, but $couponcode = "New12" will evaluate to false.

Metadata values are all considered strings, so mathematical operators {"(>, <,>=, <=, =)"}" will not work.

Post-auth-only properties

The :avs_code: property is only available at the post-auth stage of the payment lifecycle, because address verification service (AVS) checks are only available from the issuer. The :avs_code: property checks that the billing address provided matches the one that the issuer has on file.