---
title: "Dispute Alert Created"
method: POST
path: "dispute_alert.created"
tags: ["Dispute alerts"]
---

# Dispute Alert Created

`POST dispute_alert.created` (webhook)

Sent when a dispute alert is created

Required permissions:
 - `payment:dispute_alert:read`
 - `payment:basic:read`
 - `member:email:read`
 - `member:basic:read`
 - `member:phone:read`
 - `payment:dispute:read`
 - `webhook_receive:disputes`

## Headers

- `webhook-id` string, required — A unique identifier for this webhook request
- `webhook-signature` string, required — The signature of the webhook request with the webhook version prepended
- `webhook-timestamp` string, required — The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

## Payload

- object
  - `account_id` string, nullable — The account ID that this webhook event is associated with
  - `api_version` 'v1', required — The API version for this webhook
  - `api_version_date` string, nullable, required — The dated API version (Api-Version-Date) the payload is serialized to
  - `data` DisputeAlert, required
    - `account_id` string, nullable, required — The account the alerted payment belongs to, prefixed `biz_`. `null` while the alert is unmatched.
    - `amount` number, required — The alerted amount, in whole units of `currency`. This is what the issuer reported, which can differ from the payment's own amount.
    - `auto_refunded` boolean, required — Whether Whop automatically refunded the alerted payment. Reflects the payment, so it can be `true` for a refund issued by another flow (RDR, resolution) on the same payment.
    - `card_brand` string, nullable, required — The card network as reported by the issuer, lowercased, such as `visa` or `mastercard`. `unknown` when the report carries neither a network nor a recognizable BIN.
    - `created_at` string, required — When Whop received the alert, as an ISO 8601 timestamp.
    - `currency` string, required — Three-letter ISO currency code of the alerted amount.
    - `fee_charged` boolean, required — Whether Whop charged the account an alert fee for this one. Always `false` for `early_fraud_warning`, which Whop is not billed for and never passes on.
    - `id` string, required — Dispute alert ID, prefixed `dspa_`.
    - `issuer` string, nullable, required — Deprecated: always `null` outside Whop's own dashboard. Name of the bank that issued the card and filed the report. DEPRECATED: Always null outside Whop's own dashboard.
    - `payment_id` string, nullable, required — The payment the issuer reported, prefixed `pay_`. `null` when Whop could not match the report to a payment.
    - `product_id` string, nullable, required — The product the alerted payment was for, prefixed `prod_`.
    - `reported_at` string, required — When the issuer filed the report, as an ISO 8601 timestamp. Earlier than `created_at`, which is when Whop received it.
    - `transaction_at` string, nullable, required — When the reported transaction was made, as an ISO 8601 timestamp — falls back to when the matched payment was made if the issuer's own report didn't carry one. Should not be `null` in practice; treat one as a data issue rather than expected behavior.
    - `type` 'early_fraud_warning' | 'dispute_alert' | 'rapid_dispute_resolution', required — What the issuer sent. `early_fraud_warning` is a fraud report on a settled payment (Visa TC40 / Mastercard SAFE) — refunding still avoids the chargeback, and Whop never charges a fee for one. `dispute_alert` is a pre-dispute notice from the issuer's alert network, which Whop pays for and passes on as a fee. `rapid_dispute_resolution` is a Visa RDR case the network already closed by refunding the payment — nothing is left to act on.
    - `updated_at` string, required — When the alert was last changed, as an ISO 8601 timestamp.
  - `id` string, required — A unique ID for every single webhook request
  - `previous_attributes` object — For some `.updated` events, the old values of the payload fields that changed, keyed by field name. Omitted when no capture is available for the event
  - `timestamp` string, date-time, required — The timestamp in ISO 8601 format that the webhook was sent at on the server
  - `type` 'dispute_alert.created', required — The webhook event type

## Acknowledgement `200`

Return a 200 status to indicate that the data was received successfully

---

[API](https://skmtc.dev/whop/apis/whop-api.md) · [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whop/apis/whop-api/revisions/c1dceb26e505?raw)
