RyzeDeskRyzeDesk

Stripe

4105 articles

Fraudulent website signal


Private preview

Fraudulent website signal Private preview

Evaluate connected account websites for suspicious or misleading content.

The fraudulent website signal evaluates whether a connected account’s website is deceptive or violates policy. This includes websites for accounts that don’t exist yet on Stripe.

Get early access to the fraudulent website signal.

Enter your email to request access.

Request an evaluation

Use the Account Evaluations API to trigger a fraudulent website evaluation on demand. You can evaluate an existing connected account or provide account data directly.

Evaluate an existing account

You can evaluate a website for an existing account.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Evaluate without an existing account

You can evaluate a website before creating a connected account by providing account_details.data with the business URL. The business_url field is the only required field for an entity-less evaluation. You can provide other fields to improve the accuracy of the assessment.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Webhook events

The evaluation is asynchronous. Listen for:

  • v2. signals. account _ signal. fraudulent _ website _ ready when you request a fraudulent website evaluation.
  • v2. signals. account _ evaluation. complete when you request multiple signals and want one notification after all results are ready.

These are thin events: data is always {}. Use related_object.id to fetch the related signal or evaluation.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

{
 "id": "acctsig_61UDQe5wRb3w1JgCP16UDQb80xSQmM6vEqeUAlKES",
 "object": "v2.signals.account_signal",
 "type": "fraudulent_website",
 "account_details": {
 "account": "acct_1T42eHAZTJIN1MEb"
 },
 "account_evaluation": "acctevl_61UDQe5wRb3w1JgCP16UDQb80xSQmM6vEqeUAlKES",
 "created": "2026-02-26T00:43:28.000Z",
 "fraudulent_website": {
 "risk_level": "elevated",
 "details": "The website contains several indicators of potential fraud: product listings use vague descriptions inconsistent with industry norms, the contact page lacks a verifiable address, and images appear to be stock photos presented as original product photos."
 }
}

Alternatively, if you received a v2.signals.account_evaluation.complete event, use related_object.id to fetch the full evaluation, which includes the signal result in evaluated_signals:

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

{
 "id": "acctevl_61UDQe5wRb3w1JgCP16UDQb80xSQmM6vEqeUAlKES",
 "object": "v2.signals.account_evaluation",
 "account_details": {
 "account": "acct_1T42eHAZTJIN1MEb"
 },
 "requested_signals": ["fraudulent_website"],
 "pending_signals": [],
 "evaluated_signals": {
 "fraudulent_website": {
 "signal": "acctsig_61UDQe5wRb3w1JgCP16UDQb80xSQmM6vEqeUAlKES",
 "evaluated_at": "2026-02-26T00:43:28.000Z",
 "risk_level": "elevated",
 "details": "The website contains several indicators of potential fraud: product listings use vague descriptions inconsistent with industry norms, the contact page lacks a verifiable address, and images appear to be stock photos presented as original product photos."
 }
 }
}

The signal includes the following information:

FieldDescription
risk_levelThe risk level for the website: low, normal, elevated, highest or unknown.
detailsA plain description of issues found on the website, generated by LLM analysis. If the risk_level is unknown, the explanation includes why we couldn’t complete the evaluation.

Note

If the website URL is invalid or unreachable, the evaluation returns a risk level of unknown with an explanation of why we couldn’t complete the evaluation.

Test in a sandbox

You can trigger a fraudulent_website evaluation in a sandbox and receive a deterministic result without waiting for a real website crawl. Use one of the reserved test URLs as the business_url in your evaluation request.

URLrisk_level result
https://fraudulent-website.test/lowlow
https://fraudulent-website.test/normalnormal
https://fraudulent-website.test/elevatedelevated
https://fraudulent-website.test/highesthighest
https://fraudulent-website.test/unknownunknown
Any other URLnormal (standard mock response)

Note

Reserved URLs only work in a sandbox. Live mode always performs a real website evaluation.

Test with an existing account

In a sandbox, update your connected account’s business URL to a reserved test URL, then trigger the evaluation.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Test with an entity-less evaluation

Pass a reserved test URL as business_url in account_details.data:

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Take action on connected accounts

You can respond to the fraudulent website signals that you receive for a connected account using the Radar tools. See the list of available actions.

Last verified 2026-09-27

Is this helpful?