Commerce Dunning flowchart

Dunning management (Delinquent User Notification) is the automated process that's kicked off when a charge attempt of a recurring order fails. This process involves periodic customer communication and payment retries.

Terminology

A customer's payment can fail for various reasons. When the daily limit of the card has been exceeded, or the card has insufficient funds etc., the payment gateway will indicate a so called soft decline. This means charging the card can be successful in the foreseeable future.
A hard decline will be indicated by the payment gateway if the credit card is expired or not valid. In this case, that card can't be charged anymore.

Architecture

The module strongly relies on Commerce Card on File which is capable of storing and reusing credit card data on subsequent orders. Just as elsewhere in the Drupal Commerce ecosystem, functionality is implemented by utilizing Rules.
Commerce Dunning provides the basic toolset for building a dunning management process, whereas Commerce Dunning Defaults provides an actual out of the box configuration that is easy to customize.

Functionality

Check out the presentation that gives you a functional overview.

When there is a recurring payment setup in place (e.g. with using Commerce Recurring Framework), and Commerce Card on File is responsible for automatically charging cards, Commerce Dunning comes into the picture when such charge attempt fails. It provides the toolset to schedule further charge attempts and user notifications with checking the necessary conditions; these are happening via Commerce Dunning Defaults. The customer is informed about the failed payment: notifications are implemented by leveraging Message and Message Notify. If the failure was resulted by a soft decline, further charge attempts are scheduled with Rules Scheduler as well as a the action that terminates the dunning cycle, which is essentially just invoking an event that other modules can react on, since it's not in the scope of dunning management to decide what happens afterwards.
If it was a hard decline that led to the failure, the customer needs to update their credit card, so notifications regarding that are also scheduled.

Commerce Dunning Testing is shipped to support manual testing of the functionality.

Commerce Module Tuesdays on Commerce Dunning

Requirements

Drupal 8

Dunning functionality is now built into the Commerce Recurring module.

Credits

Development is sponsored by Commerce Guys. Thanks to Aaron Dudenhofer, David Kitchen, Ryan Szrama and Augustin Delaporte for helping to architect the module.

Project information

  • caution Seeking co-maintainer(s)
    Maintainers are looking for help reviewing issues.
  • caution No further development
    No longer developed by its maintainers.
  • chart icon81 sites report using this module
  • Created by balintk on , updated
  • shieldStable releases for this project are covered by the security advisory policy.
    There are currently no supported stable releases.

Releases