Refunds
Process provider refunds and understand how vantezzen/pay updates wallets.
Refunds start at the payment provider. vantezzen/pay listens for refund webhooks and updates wallet state from those provider events.
Find the order
Open the vantezzen/pay dashboard and find the order under Orders. Use the provider link on the order to jump to the matching Stripe or Polar checkout/customer record.
Issue the refund in Stripe or Polar
Create the refund in the provider dashboard. Keep the provider as the source of truth for money movement, receipts, tax records, and customer communication.
Stripe and Polar webhook delivery may take a short moment. Do not manually edit the vantezzen/pay order while waiting for the webhook.
Confirm the webhook
Check the vantezzen/pay webhook log after refunding. A full refund should arrive as a refund event and mark the matching order as refunded.
If no event arrives, check that the provider webhook endpoint is still configured and that the account attached to the product is the same account that issued the refund.
Check the wallet outcome
For a full refund, vantezzen/pay reverses the original credit grant. If the refunded order started a subscription, vantezzen/pay also cancels that subscription row so subscription-derived features stop.
What vantezzen/pay changes
On a full refund, vantezzen/pay:
- marks the order as
refunded - writes a negative ledger entry for the original credit grant
- cancels the subscription that was started by that order
- removes access that was derived from that subscription
Manual grants are not touched by a provider refund. If support granted an extra feature or credits separately, remove those separately if needed.
Partial refunds
Partial refunds are intentionally ignored by the fulfillment layer today. They are money adjustments, but vantezzen/pay does not know how many credits or which features should be removed from a partial refund.
For partial refunds, decide what should happen operationally:
- leave the wallet as-is
- revoke a manual support grant
- grant compensating credits
- issue a full refund instead when access should be removed
Customer asks for a refund from your app
Send them to billing management when possible:
<WalletButton>Wallet</WalletButton>The wallet dialog opens the provider portal for wallets with billing history. If the provider portal does not expose refunds for your account setup, handle the request from your support process and issue the refund in the provider dashboard.