Details

    • Type: New Feature
    • Status: Done/Fixed
    • Priority: Trivial
    • Resolution: Duplicate
    • Affects Version/s: 4.2.6
    • Fix Version/s: 4.3.0
    • Component/s: CiviContribute
    • Labels:

      Description

      I'd like to add a "refund contribution" action to Civi core, which does the following:
      a) Create a negative contribution which is linked to the original contribution and contact. I'm not sure how to link the contributions, since transaction_id must be unique.
      b) Fire a hook which can alter any of the records involved in the refund.
      c) Perform the actual refund through the payment processor if possible, otherwise the negative contribution is left in the "pending" state.

      Ideally, this action can be triggered from the "Edit Contribution" page.

        Attachments

          Activity

          [CRM-11503] Refund contribution
          David Greenberg added a comment -

          Adam - this is closely related to work currently in progress for 4.3 ("CiviAccounts" project). We're currently clarifying spec for the supported use cases here:

          http://wiki.civicrm.org/confluence/display/CRM/CiviAccounts+4.3+Data+Flow
          (see especially the "Change contribution amount" section - a Refund / Cancellation would trigger similar outputs)

          Would be good for us to meet and discuss your requirements relative to the work currently in progress.

          Adam Wight added a comment -

          Here are more details about the feature we need. It's much simpler than the event refund pages I implemented for Compasspoint.

          https://mingle.corp.wikimedia.org/projects/fundraiser_2012/cards/572

          https://mingle.corp.wikimedia.org/projects/fundraiser_2012/cards/535

          I'd really like to do this in a way that complements the CiviAccounts feature.

          Adam Wight added a comment -

          Stubbed implementation of the refund ui. This patch does not perform any processing.

          Adam Wight added a comment -
          David Greenberg added a comment -

          For 4.3 + the expected representation of a 'refunded' completed contribution is described here:

          http://wiki.civicrm.org/confluence/display/CRM/CiviAccounts+4.3+Data+Flow#CiviAccounts4.3DataFlow-RefundaCompletedcontribution%28changestatustoRefunded%29

          In this approach, a separate negative contribution is not created. Instead the original contribution status and an associated financial_trxn carry the 'Refunded' status, and a negative amount is stored in both. This approach is consistent with the overall 'CiviAccounts' data model for book-keeping transactions.

          Adam Wight added a comment -

          Very cool, that representation sounds like a big improvement.

          (off-topic disclaimer):
          Where is planning discussion happening for the accounts stuff? We are also introducing something like the "Paid" status, but we need to differentiate between a) donor's bank has settled with payment processor, and b) money is deposited into our account.

          David Greenberg added a comment -

          The 'Refund' workflow has been integrated into the main Contribution Edit form.

          Adam - please open a separate issue if additional hooks are needed in core to allow an extension to implement automated refund transactions via payment processor API.

            People

            • Assignee:
              David Greenberg
              Reporter:
              Adam Wight

              Dates

              • Created:
                Updated:
                Resolved: