anchor.diff:  The following table lists the various overdue conditions. Note that it is also possible to combine multiple conditions in which case _ALL_ the specified conditions need to evaluate to true for the account to enter the particular overdue state.
   
   [cols="a,a,a"]
  +
   |===
   |*Condition*   |*Description* |*Example*
   //-------------
  -|numberOfUnpaidInvoicesEqualsOrExceeds   |Specifies that the overdue flow should kick in when the number of unpaid invoices equals or exceeds the specified value. An integer value needs to be specified.|  
  +|numberOfUnpaid + 
  +InvoicesEqualsOrExceeds   |Specifies that the overdue flow should kick in when the number of unpaid invoices equals or exceeds the specified value. An integer value needs to be specified.|  
   [source, xml]
   <condition>
   <numberOfUnpaidInvoicesEqualsOrExceeds>2
   </numberOfUnpaidInvoicesEqualsOrExceeds>
   </condition>
  -|totalUnpaidInvoiceBalanceEqualsOrExceeds   | Specifies that the overdue flow should kick in when the total unpaid invoice balance equals or exceeds the specified value. A decimal value needs to be specified.  |
  +|totalUnpaidInvoice + 
  +BalanceEqualsOrExceeds   | Specifies that the overdue flow should kick in when the total unpaid invoice balance equals or exceeds the specified value. A decimal value needs to be specified.  |
   [source, xml]
   <condition> 
     <totalUnpaidInvoiceBalanceEqualsOrExceeds>1.00
      </totalUnpaidInvoiceBalanceEqualsOrExceeds>
   </condition> 
  -|timeSinceEarliestUnpaidInvoiceEqualsOrExceeds   |Specifies that the overdue flow should kick in when the specified duration has elapsed since the last unpaid invoice. The duration needs to be specified with a `unit` (one of `DAYS`, `WEEKS`, `MONTHS`, `YEARS`, `UNLIMITED`) and an integer value  | 
  +|timeSinceEarliestUnpaid + 
  +InvoiceEqualsOrExceeds   |Specifies that the overdue flow should kick in when the specified duration has elapsed since the last unpaid invoice. The duration needs to be specified with a `unit` (one of `DAYS`, `WEEKS`, `MONTHS`, `YEARS`, `UNLIMITED`) and an integer value  | 
   [source, xml]
   <condition>
     <timeSinceEarliestUnpaidInvoiceEqualsOrExceeds>
  
positive.code: 
  The following are some sample `overdue.xml` files:
  
  * https://github.com/killbill/killbill-docs/blob/4671dcd9da1cf021e85629ab67e3ffb6fb553bb1/overdue-configurations/overdueWithNumberOfUnpaidInvoicesCondition.xml[overdueWithNumberOfUnpaidInvoicesCondition.xml]
  
  * https://github.com/killbill/killbill-docs/blob/4671dcd9da1cf021e85629ab67e3ffb6fb553bb1/overdue-configurations/overdueWithTotalUnpaidInvoiceBalanceCondition.xml[overdueWithTotalUnpaidInvoiceBalanceCondition.xml]
  
  * https://github.com/killbill/killbill-docs/blob/4671dcd9da1cf021e85629ab67e3ffb6fb553bb1/overdue-configurations/overdueWithControlTag.xml[overdueWithControlTag.xml]
  
  * https://github.com/killbill/killbill-docs/blob/4671dcd9da1cf021e85629ab67e3ffb6fb553bb1/overdue-configurations/overdueWithExclusionControlTag.xml[overdueWithExclusionControlTag.xml]
  
  * https://github.com/killbill/killbill-docs/blob/4671dcd9da1cf021e85629ab67e3ffb6fb553bb1/overdue-configurations/overdueWithMultipleConditions.xml[overdueWithMultipleConditions.xml]
  
  === Overdue.xml validation
  
  
negative.code: 
  At its core, the overdue configuration file contains a list of the various states that a customer's account may go through if the customer does not pay. Each state includes the information listed in the table below.
  
  [cols="a,a,a,m"]
  [width=75%]
  |===
  | *Information*   |*Type*   |*Description* |*Example*  
  //----------------------
  |name   |Attribute on `state` tag   |Name given to the state | 
  <state name="WARNING">  
  |condition     |Tag within `state` |Specifies the condition to be evaluated. The account will enter this overdue state only if the condition evaluates to true.  | See <<Overdue Conditions>>
  |externalMessage   |Tag within `state`    |Optional message which can be retrieved by plugins listening to overdue events, and displayed to the user. Any String value can be specified  |
  <externalMessage>
  Reached WARNING
  </externalMessage>
  |subscriptionCancellation + 
  Policy   |Tag within `state`|Specifies whether or not to cancel the subscriptions associated with the account (and the cancellation policy that should be used) when this overdue state is reached. Possible values are `NONE`, `IMMEDIATE`, `END_OF_TERM`)     |
  <subscriptionCancellationPolicy>
  END_OF_TERM
  </subscriptionCancellationPolicy>`
  |blockChanges   |Tag within `state`|Specifies whether the customer is allowed to make any plan change on the subscriptions when this overdue state is reached. A true/false value needs to be specified. |
  <blockChanges>
  true
  </blockChanges>
  |disableEntitlement + 
  AndChangesBlocked  |Tag within `state`|Specifies whether the subscriptions should be paused (which means entitlement and billing will be disabled and changes will be blocked) when this overdue state is reached. A true/false value needs to be specified.    |
  <disableEntitlementAndChangesBlocked>
  true
  </disableEntitlementAndChangesBlocked>
  |autoReevaluation + 
  Interval   |Tag within `state`   |Specifies the duration after which the overdue state should be reevaluated. The duration needs to be specified with a `unit` (one of `DAYS`, `WEEKS`, `MONTHS`, `YEARS`, `UNLIMITED`) and an integer value. |                 <autoReevaluationInterval>
                   <unit>DAYS</unit>
                   <number>4</number>
                  </autoReevaluationInterval>
  |isClearState   |Tag within `state`   |Specifies whether the current state is a clear state. A true/false value needs to be specified. |
  <isClearState>true</isClearState>
  |===
  
  === Overdue Conditions
  