Comparaison des versions


  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • Formatting was changed.
Commentaire: Begin draft of implementation spec

Implement Invoicing for all Payment Obligations


Support Online Payments for Unpaid and Partially Paid Invoices

Invoices list goods or services provided and the amount due for them, and can be unpaid, partially paid, or paid. They are often required by organizations in workflows like cheque requisitions which ask an accounting department to pay an amount owed. Currently CiviCRM supports invoices for amounts owing as well as previously paid via the Contact Dashboard. But there are several improvements required:



  1. CiviCRM does not natively have a way to process a credit card or other immediate online payment to pay for an existing “pay later” contribution either in the backend or front-end.

    1. Build


    1. front-end and back-end processes for paying existing


    1. invoices online (this is simpler than the 2012 spec).

      1. Front-end: The contact dashboard already


      1. displays links to PDF invoices; extend that by creating a link to pay any open invoices (balance due) online.


      1. Image Added
        Clicking the Pay Now button will bring up the contribution page defined as the default invoice payment page on the CiviContribute Component Settings page:
        Image Added
        A validation will be made to ensure a payment processor is defined for the selected contribution page, and that it is enabled. A validation is added to Edit Contribution Page to ensure that if the page is defined as Default invoice payment page, then it is invalid to remove the last payment processor from the page. (Please verify that there is a validation to prevent a payment processor from being disabled if it is in use on a contribution page like the Default invoice payment page.)  

        When a Pay Now button on a Contact Dashboard is clicked, the Default invoice payment page is loaded:

        1. Discounts, premiums, recurring payments and pledge sections of the page will be disabled.
        2. The price set part of the page will be replaced with a frozen (ie non-editable) listing of the existing line items for the contribution, membership, or event registration, including taxes, with discounts applied. 
        3. Option A: The total payment amount could be frozen.

        4. Option B: Partial payments could be supported.

      2. Back-end: On the New Contribution form, near the top right there a link submit credit card contribution. The differences between the Create contribution form in the two cases provide a pattern for how this could be done on the edit form with minimal effort (though perhaps not optimal usability):

        Image Added

        Image Added

    1. As an additional feature, the ability to pay for outstanding online will need to accommodate partial payments (where the user has partial amount due on the invoice total). 

  1. Create a process to auto-generate membership invoices for the coming year. (lower priority for core integration)

(Background:Contribution records are created in one of two ways -- either by processing a online transaction (typically a credit card, but also PayPal, direct debit / ACH), or through a pay later contribution that gets a Pending (pay later) status and is typically paid through an offline means (checks, also certain types of EFTs outside of North American). Both ways are supported in the back-office for staff and on public facing pages for users. The former supports actions such as an individual becoming a member for the first time, where the membership record and transaction are created through the application form. Such pay immediate transactions are handled the same using cash method and accrual method of accounting. Pay Later transactions are currently recorded in CiviCRM as accounts receivable amounts, which is used in the accrual method of accounting but not the cash basis.)

Better Handling of Refunds, Partial Payments, Multiple/Split Payments


Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.