---
title: "Early fraud warnings"
description: "2 operations, with parameters and examples."
url: https://docs.fluveo.com/api/early_fraud_warnings/
---

> Index of every page: https://docs.fluveo.com/llms.txt. Integrating Fluveo? Read https://docs.fluveo.com/agents/integrate.md first.

> Too long? This page with code in one language only: https://docs.fluveo.com/api/early_fraud_warnings.curl.md (cURL), https://docs.fluveo.com/api/early_fraud_warnings.node.md (Node.js), https://docs.fluveo.com/api/early_fraud_warnings.python.md (Python), https://docs.fluveo.com/api/early_fraud_warnings.php.md (PHP).

# Early fraud warnings

2 operations, with parameters and examples.

An early fraud warning tells the store that a card issuer reported one of its charges as likely fraud, before any dispute. A warning with actionable true still leaves time to refund the charge in full and avoid the dispute and its fee; a full refund makes the warning actionable false. Warnings are read-only and name the store's own charge and PaymentIntent; each new warning is also sent as radar.early_fraud_warning.created, and each change as radar.early_fraud_warning.updated (see Events).

Send every request to `https://api.fluveo.com/v1` with your secret key as a Bearer token. This page lists only what Fluveo serves; [the OpenAPI file](https://docs.fluveo.com/openapi.json) holds the same operations.

An operation or a parameter marked **Preview** works, but it is not locked yet and may change: [what Preview means](https://docs.fluveo.com/api.md#preview).

> **For AI agents:**
>
> Use plain HTTP; install no payments SDK. Send `Authorization: Bearer sk_test_...` and a fresh `Idempotency-Key` on every POST; reuse the same key only when you retry that same POST. Send only the documented parameters. An operation or a parameter marked Preview may change: prefer the ones without the mark.

## Lists the store's early fraud warnings, newest first (Preview)

`GET /v1/radar/early_fraud_warnings`

Permission: none. [No restricted key](https://docs.fluveo.com/permissions.md#no-restricted-key) may call this operation; only a secret key may.

**Preview:** this operation works, but it is not locked yet; it may change.

**Query parameters**

- `charge` (string, optional): Only the warnings of this charge. A charge id that is not the store's is refused with 404 resource_missing.
- `created` (object, optional): Filter on the creation time, a Unix timestamp: created=<t> for an exact match, or created[gt], created[gte], created[lt], created[lte].
- `ending_before` (string, optional): Cursor: the id of the first object of the current page, to get the previous page. Do not send it with starting_after.
- `limit` (integer, optional): How many objects to return, from 1 to 100. Default 10.
- `payment_intent` (string, optional): Only the warnings of this PaymentIntent's charges. A PaymentIntent id that is not the store's is refused with 404 resource_missing.
- `starting_after` (string, optional): Cursor: the id of the last object of the previous page, to get the next page. Do not send it with ending_before.

**Headers**

- `Fluveo-Version` (enum, optional): Optional. The only version Fluveo serves is 2026-05-27.dahlia; any other value is refused with a 400. Every answer names that version in its own Fluveo-Version header, except the refusals Fluveo gives before it reads the request (no key, an unknown key, an unknown URL, a body that is not a form) and a file's bytes, which name no version and no Request-Id.

  One of: `2026-05-27.dahlia`.

Returns a list of [`radar.early_fraud_warning`](https://docs.fluveo.com/api/early_fraud_warnings.md#object-radar_early_fraud_warning) objects.

**Request**

cURL:

```bash
curl https://api.fluveo.com/v1/radar/early_fraud_warnings \
  -H "Authorization: Bearer sk_test_..."
```

Node.js:

```javascript
const response = await fetch("https://api.fluveo.com/v1/radar/early_fraud_warnings", {
  method: "GET",
  headers: {
    "Authorization": "Bearer sk_test_...",
  },
});
console.log(await response.json());
```

Python:

```python
import requests

response = requests.get(
    "https://api.fluveo.com/v1/radar/early_fraud_warnings",
    headers={"Authorization": "Bearer sk_test_..."},
)
print(response.json())
```

PHP:

```php
<?php
$ch = curl_init("https://api.fluveo.com/v1/radar/early_fraud_warnings");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer sk_test_...",
    ],
]);
echo curl_exec($ch);
```

## Retrieves one early fraud warning (Preview)

`GET /v1/radar/early_fraud_warnings/{early_fraud_warning}`

Permission: none. [No restricted key](https://docs.fluveo.com/permissions.md#no-restricted-key) may call this operation; only a secret key may.

**Preview:** this operation works, but it is not locked yet; it may change.

**Path parameters**

- `early_fraud_warning` (string, required): The id of the radar.early fraud warning.

**Headers**

- `Fluveo-Version` (enum, optional): Optional. The only version Fluveo serves is 2026-05-27.dahlia; any other value is refused with a 400. Every answer names that version in its own Fluveo-Version header, except the refusals Fluveo gives before it reads the request (no key, an unknown key, an unknown URL, a body that is not a form) and a file's bytes, which name no version and no Request-Id.

  One of: `2026-05-27.dahlia`.

Returns a [`radar.early_fraud_warning`](https://docs.fluveo.com/api/early_fraud_warnings.md#object-radar_early_fraud_warning) object.

**Request**

cURL:

```bash
curl https://api.fluveo.com/v1/radar/early_fraud_warnings/issfr_123 \
  -H "Authorization: Bearer sk_test_..."
```

Node.js:

```javascript
const response = await fetch("https://api.fluveo.com/v1/radar/early_fraud_warnings/issfr_123", {
  method: "GET",
  headers: {
    "Authorization": "Bearer sk_test_...",
  },
});
console.log(await response.json());
```

Python:

```python
import requests

response = requests.get(
    "https://api.fluveo.com/v1/radar/early_fraud_warnings/issfr_123",
    headers={"Authorization": "Bearer sk_test_..."},
)
print(response.json())
```

PHP:

```php
<?php
$ch = curl_init("https://api.fluveo.com/v1/radar/early_fraud_warnings/issfr_123");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer sk_test_...",
    ],
]);
echo curl_exec($ch);
```

## The radar.early_fraud_warning object

Ids start with `issfr_`.

**Attributes**

- `actionable` (boolean)
- `charge` (string, expandable): An id by default; send `expand[]=charge` to get the full charge object.
- `created` (integer)
- `fraud_type` (string)
- `id` (string)
- `livemode` (boolean)
- `object` (enum): One of: `radar.early_fraud_warning`.
- `payment_intent` (string, expandable): An id by default; send `expand[]=payment_intent` to get the full payment_intent object.
