Refunds & Chargebacks
This page covers refunds, money you give back voluntarily. For chargebacks (when a customer disputes with their bank instead), see Chargebacks for the deeper guide on what they are, how to reduce them, and how to fight them.
Issuing a refund
Refunds are issued in your payment gateway, not in FluxStore. Open the transaction in Stripe, PayPal, or iyzico and refund it there. FluxStore detects the refund automatically, by webhook or on the next sync when you open the order, and then:
- revokes the customer’s entitlements
- runs your package’s Refund commands, if you’ve configured any
- sets the order status to refunded
- returns any loyalty points spent on the order and claws back points earned from it
The Mark as Refunded button in Dashboard > Orders does not move any money. It performs the FluxStore side of the steps above and nothing else, so the customer is not paid back. Use it when you’ve already refunded the customer another way, or to correct your records. If you click it without refunding in your gateway, the customer keeps their money and loses their perks.
Marking an order refunded requires the Issue Refunds permission, plus Orders access to reach the order in the first place. See Team Management.
Partial refunds
FluxStore does not track refunds by amount. Any refund it detects on an order, whatever the amount, marks the whole order refunded, revokes every entitlement on it, and runs your refund commands. If you partially refund one item in a multi-item order, the customer loses all of the items. Re-grant manually if that isn’t what you intended.
What happens to entitlements
Refunding revokes the customer’s entitlement, but commands that already ran don’t undo themselves. If you gave someone 64 diamonds on purchase, those diamonds don’t come back when you refund, unless you’ve configured a Refund command on the package to take them back.
Configure refund commands on each package under its command editor. They support the same variables ({player}, {uuid}, {transaction_id}) and per-server targeting as your initial commands. Common patterns:
lp user {player} parent remove vip
clear {player} diamond 64Without refund commands, the player keeps what they were given. For permission-based perks (LuckPerms ranks, etc.) this matters a lot: they’ll still have VIP after you refund unless your refund command removes it.
Chargebacks (quick reference)
A chargeback is when a customer disputes a payment with their bank instead of asking you for a refund. The bank pulls the money back; you lose the sale and typically pay a dispute fee on top.
FluxStore handles chargebacks automatically when your payment gateway sends a dispute notification:
- The order’s status flips to chargebacked.
- Chargeback commands on the affected packages run automatically (separate from refund commands so you can be harsher, e.g. ban the player as well as revoke the rank).
- If Auto-Ban on Chargeback is enabled in your store’s checkout settings, FluxStore creates a permanent ban for the player matching their username, UUID, and IP.
- A
dispute.openedwebhook fires (if you have outgoing webhooks configured).
For the full story (what chargebacks are, why they happen, how to reduce them, and Stripe Chargeback Protection), see Chargebacks.
Next Steps
- Managing Orders: viewing, filtering, and exporting orders
- Chargebacks: deep guide on dispute handling and prevention
- Bans: manage bans, including auto-bans from chargebacks
- Fraud Protection: block repeat chargeback offenders before they buy