The functionality that makes split billing possible is the Amount Split bundle. It analyzes the rating result (Invoice Detail Lines) and manipulates and splits them according to the bundle's configuration.
Code | AMOUNT-SPLIT |
---|---|
Description | This bundle has the capacity of discounting all invoice detail lines or subscription fee lines (that apply to the bundle), until the limit defined in VALUE1 is reached. It includes a few different ways to discount as well. |
Business scenario | See examples |
Applies to | No limitations |
Core info | Available only in the Rator-bundles project (from the very first version). |
Values
The meaning and use of the values of this bundle are as follows:
Value1 | The maximum limit of usage inside the bundle. A Value1 of zero means unlimited |
---|---|
Value2 | The current usage spent |
Value3 | Not used |
Value4 | Not used |
Logic
The bundle starts by forwarding the rating in order to get invoice detail lines or subscription fee lines (mentioned as "detail lines" from here on) returned. Afterwards, it processes the result of the actual rating. Value2 is incremented, until it reaches Value1. The value processed is the total monetary amount of the detail lines returned by the rating, with respect to the configured detail line calculation strategy.
Please note
Give the bundle a high priority (low number) as other bundles should likely be used before this one
Strategies
The Amount Split Bundle implements different strategies for its three main functionalities:
Main strategy | Key | Description |
---|---|---|
Discounting | DISCOUNT_STRATEGY | Defines how a discount should be processed |
Calculate Remaining Units | REMAINING_UNITS_STRATEGY | Defines how a bundle's remaining units should be calculated |
Billing group retrieval | BG_RETRIEVAL_STRATEGY | Defines how the bundle should find and retrieve an external billing group |
Value of detail lines | CALCULATE_IDL_VALUE_STRATEGY | Defines how the value of detail lines is calculated |
All strategy types are defined using the bundle parameters as used by many other bundle types (i.e. DISCOUNT_STRATEGY=CREATE_NEGATED_LINE). The current implementations of the main strategies are:
Main strategy | Strategy name | Name | Default | Description |
---|---|---|---|---|
Discounting | Zero rate discount line | DecreaseDiscountLineValueStrategy | Yes | Discounts the detail line by decreasing the total value of the detail line. If the entire detail line is inside the bundle the detail line will be zero rated. |
Discounting | Create negated discount line | CreateNegatedDiscountLineStrategy |
| Discounts by creating a copy of the discounted detail line with an opposite sign and adding it to the rating result. Two optional arguments are provided: serviceCode and priceCode. |
Discounting | Create customized negated discount line | WorkflowEnabledNegateDiscountLineStrategy | Discounts by creating a customized detail line, where amount to be discounted is set. The customized detail line is returned from workflow invoked by the hookpoint having static key "BUNDLE.STRATEGY.DISCOUNT.NEGATE". | |
Calculate Remaining Units | Get current subscription bundle value | GET_CURRENT_VALUE | Yes | Subtracts the maximum value (usually VALUE1) with the current units (usually VALUE2). |
Calculate Remaining Units | Compare with BillingGroup balance | COMPARE_BILLING_GROUP_BALANCE |
| Executes the logic in "GET_CURRENT_VALUE"-strategy and compares it with the current BillingGroup's balance in the BillingContext. The smaller of the two will be used. |
Billing group retrieval | Get BillingGroup from billing context | BILLING_CONTEXT | Yes | As the billing context is generated using the current subscription/service's billing group using this strategy is the same as not forwarding the detail lines to an external billing group |
Billing group retrieval | Get BillingGroup from subscription campaign parameter | SUBSCRIPTION_CAMPAIGN_PARAMETER |
| Use this strategy if the bundle should bill everything inside the bundle to a different billing group. The billing group's ID should be set on a subscription campaign parameter named SPLIT_BILLING_BG_ID |
Value of detail lines | Total for billing group | CalculateDetailLinesValueForBillingGroup | Yes | The value of detail lines are calculated as a sum of total excl VAT and total VAT for the billing group in billing context (might be different for "normal" billing group if detail lines have been created for other billing group). |
Value of detail lines | Total as percentage | CalculateDetailLinesValueByPercentage | The value of detail lines are calculated as a sum of total excl VAT and total VAT, regardless of billing group. The returned value is the configured percentage of the value of detail lines. |
Parameters
The parameters available for the Amount Split Bundle are described in the Strategies section.
Examples
Company Paid Usage
Scenario: A company would like to pay the first DKK 200 of an employee's national voice usage. Any usage inside the bundle should generate three detail lines for the employee:
- a negative detail line
- a positive detail line, and
- a negative detail line billed to the company's billing group.
This requires configuring an Amount Split Bundle to react on the national voice number plan. Value1 would be set to 200 and the parameters should be:
- Bundle parameters: DISCOUNT_STRATEGY=CREATE_NEGATED_LINE;BG_RETRIEVAL_STRATEGY=SUBSCRIPTION_CAMPAIGN_PARAMETER
- Subscription campaign parameters: SPLIT_BILLING_BG_ID=[the ID of the company's billing group]
Discount Bundle
Scenario: A bundle is required that discounts all detail lines inside the bundle, until DKK 100 is reached. It discounts by zero-rating the usage inside the bundle and decreases the total value of the splitting detail line.
Create an Amount Split Bundle and configure it to react on the desired plan elements. Set Value1 to 100. No bundle parameters are necessary as the desired strategies are already selected by default.
Discount Until Balance is 0
Scenario: A billing group should pay for usage, until no more money is left. The balance must not fall below zero.
Create an Amount Split Bundle and configure it to react on the desired plan elements. Set Value1 to 0 (for unlimited usage). The following parameters should be applied to the bundle.
Bundle parameters: BG_RETRIEVAL_STRATEGY=SUBSCRIPTION_CAMPAIGN_PARAMETER;REMAINING_UNITS_STRATEGY=COMPARE_BILLING_GROUP_BALANCE;
The bundle will charge the external billing group, until the balance reaches zero.