Refunds
Refunds reverse a successful payment. Whop processes them through the original payment processor. The matching membership status updates automatically.Issue a refund
Refunds are created against a payment, not directly on the refunds resource. Callpayments.refund(id, ...). Omit partial_amount for a full refund, or pass it for a partial.
Payment object. The refunded_amount field reflects the cumulative refunded total. You can call refund multiple times against a payment up to its full amount.
Required permission:
payment:manage. Add it from the Permissions guide before publishing your app.Inspect refunds
Refunds have their own resource if you need to look them up after the fact.Disputes
A dispute (chargeback) opens when the buyer’s bank challenges a payment. You have a window to respond with evidence before the bank decides. Whop forwards the dispute to you, you submit evidence, the bank rules, and the dispute closes.Watch for incoming disputes
Two events to subscribe to:List and retrieve
Respond with evidence
Disputes have a two-step response: stage your evidence withupdateEvidence, then submit with submitEvidence. Update is idempotent. You can edit fields up until you submit.
Evidence fields
Every field is optional, but the more you provide, the stronger the response. Common ones:
Attachment fields take an uploaded file ID. Upload first via the Files API, then pass
file.id.
Dispute statuses
The dispute moves through a state machine. There are two phases: the early-warning phase (statuses prefixedwarning_, surfaced via dispute_alert.created) and the formal dispute phase. Every status the SDK can return:
When a dispute is lost, Whop does not auto-create a Refund record and you cannot create one yourself.
payments.refund rejects calls against a disputed payment with “This payment has been disputed. Therefore, it cannot be refunded.” Track the lost dispute as the source of truth and do not expect a refund.created event.Permissions
Add these from the Permissions guide.
Next steps
Accept payments
The flow that creates the payments you’ll later refund or defend.
Listen to webhooks
React to refund and dispute events server-side.
Upload files
Upload evidence attachments for dispute responses.
Disputes API reference
Full resource: fields, statuses, and every endpoint.

