Jack - Payment Refund

XF2 Basic Jack - Payment Refund 1.0.0

No permission to download
ℹ️ XF versions
  1. 2.3.x
ei_4fe50d55b6d1eee9a630fb02e7a65df8.webp


This add-on adds two capabilities missing from XenForo's payment system:
  1. Admin-initiated refunds — Issue full or partial refunds directly from the admin panel instead of logging into the provider dashboards (e.g. Stripe, PayPal, etc).
  2. Smart partial refund handling — Fixes a core XenForo behavior where partial refunds (e.g., a $15 discount adjustment on a $30 purchase) downgrades the user vs only refunds. Partial refunds now log as informational events without triggering a reversal. Full refunds continue to auto-downgrade as before.
Tactically put, the add-on does four things:
  1. Provides a refund framework for providers - Defines the supportsRefunds() / refund() interface that any payment provider can implement, plus the payment_refund_complete event for purchasable add-ons to listen to.
  2. Provider Updates - Extends both Stripe and PayPal REST providers with their refund API calls, webhook deduplication, and partial refund handling.
  3. Admin UI - Adds the "Issue Refund" button and form to payment provider log entries.
  4. User Upgrade handling - Since user upgrades are native to XenForo, this add-on tries to complete partial vs full refund handling for User Upgrade purchases. The behavior of any refund amount triggering a downgrade has been changed to support partial refund scenarios. However, if you want to do a partial refund and downgrade the user, the UX provides that capability.
Other add-on developers would be responsible for implementing refund support in their own payment providers (via the new supportsRefunds() / refund()) that this addon provides) and their own purchasable types (via the payment_refund_complete code event).

  1. Admin navigates to Logs → Payment Provider → [specific payment entry]
  2. Clicks "Issue Refund" (only visible for providers that support refunds)
  3. Enters refund amount (pre-filled with remaining refundable balance)
  4. For user upgrades: option to reverse the purchase (downgrade user)
  5. For other purchasable types: the refund is processed with the provider, and the owning add-on handles reversal via the payment_refund_complete code event
  6. The add-on calls the provider's refund API, logs the result, and tracks the cumulative refunded amount
  • desired for the upgrade.webp
    desired for the upgrade.webp
    26 KB · Views: 6
  • trigger just a refund.webp
    trigger just a refund.webp
    31 KB · Views: 6
Author
XFTech
Downloads
2
Views
17
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from XFTech

Back
Top