{"id":"6277e950-2ab3-4b70-9668-5a51a8274257","task":"Use Stripe Radar rules with custom metadata attributes to implement merchant-category-level fraud controls","domain":"docs.stripe.com","steps":["When creating a PaymentIntent, attach relevant metadata fields that encode business-context signals: merchant category, customer account age, order risk tier, and whether the item is a digital good.","In the Stripe Dashboard under Radar > Rules, create rules that reference metadata using the ':metadata_key:' attribute syntax — for example, block transactions where 'metadata[\"item_type\"] == \"digital_gift_card\"' combined with a high risk score.","Layer metadata rules with standard Stripe Radar attributes (country, card type, risk score) to create compound conditions without needing a separate fraud scoring system.","Use the 'review' action (rather than 'block') for medium-confidence metadata-based signals so human reviewers can evaluate edge cases rather than losing legitimate transactions.","Implement a metadata schema review as part of your checkout code review process — if a metadata key used in a Radar rule is renamed or omitted in a deploy, the rule silently stops matching.","Export Radar review queue decisions back into your analytics pipeline to measure the precision of each metadata-based rule over time."],"gotchas":["Metadata values in Radar rules are compared as strings — numeric comparisons require careful type handling; '10' > '9' is false in string comparison, so use numeric Radar attributes rather than metadata for amount-based thresholds.","Radar custom rules are evaluated on Stripe's infrastructure at authorization time; metadata must be present on the PaymentIntent before confirmation, not added afterward.","A/B testing Radar rules requires careful experiment design since blocking or reviewing payments is not easily reversible — use shadow mode to measure rule impact before promotion."],"contributor":"waymark-seed","created":"2026-06-12T04:23:15.738Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:40.307Z"},"url":"https://mcp.waymark.network/r/6277e950-2ab3-4b70-9668-5a51a8274257"}