2 About Corrective Billing

This chapter describes the support for corrective billing in Oracle Communications Billing and Revenue Management (BRM).

Before reading this chapter, read "About Billing".

About Bill Corrections

Corrections to a bill become necessary when a bill or invoice sent to a customer requires an update. Corrections to a bill may or may not affect the charges on a bill.

A corrective bill is a bill that is generated after corrections are made to a regular bill or a bill that was previously corrected. You ensure that the adjustments are appropriately allocated and then generate the corrective bill. The corrective bill includes all accounts receivable (A/R) actions for the charges applied to the bill items. BRM does not apply any additional discounts or charges.

When a corrective bill is generated, it is assigned a new due date based on the current payment setup for the account.

A corrective invoice is the invoice associated with a corrective bill and, based on your billing configuration, contains the entire bill information or only the corrections and adjustments. For information on corrective invoices, see BRM Designing and Generating Invoices.

About Simple Corrections to Bills

Simple corrections to a bill result from changes that do not affect the amount owed by the customer. For example, a change to the invoice address on the customer's account or a correction to the language on the customer's profile do not result in a change to the amount owed by the customer, irrespective of the method of payment.

About Corrections to Charges in Bills

In BRM, corrections to the charges on a bill result from manual or automatic adjustments (debits or credits), for example, settled disputes that require some item adjustment, catalog corrections such as retroactive tariff updates, other automatic adjustments, and so on. All the A/R actions included in the corrective bill impact the totals or balances for that bill.

You can create a series of corrective bills for a bill. For example, you generate a corrective bill CB-57 for a regular bill B1-124. Subsequently, you can generate a corrective bill CB-89 for corrections to CB-57, CB-104 for corrections to CB-89, and so on.

About Billing Customers

To bill customers, you use Customer Center to generate corrective bills for an individual bill. When you have corrections for a set of bills or accounts, you use the pin_make_corrective_bills utility to create the corrective bills. Alternately, you can generate corrective bills by using an external application that BRM supports, such as Seibel's Customer Relationship Management (CRM) application. To do so, you must customize the external application. See "Generating Corrective Bills".

Note:

The corrective billing process in BRM does not support the use of billing scripts associated with regular billing, namely, pin_bill_day, pin_bill_week, and pin_bill_month.

About Corrective Bills

BRM can generate corrective bills for:

  • Original bills

  • Bills created using the Bill Now selection in Customer Center

  • On-demand billing

  • Parent and subordinate bills in a bill hierarchy

  • A prior corrective bill. That is, you can correct a subsequent corrective bill to address the errors on a prior corrective bill.

BRM creates a corrective bill for a finalized bill only. If a bill is currently in progress, BRM does not permit a corrective bill to be generated for that bill. For a description of a finalized bill, see BRM Glossary.

About Corrective Billing in Subordinate Hierarchies

When there are correction to charges for a bill in a hierarchy, BRM does the following:

  • It accepts requests to generate a corrective bill for the parent bill in a hierarchy even when it is a subordinate bill that needs the correction. This is because any adjustment applied to a subordinate bill immediately impacts the bill and bill items for the parent bill.

    Note:

    If you submit a request to generate a corrective bill for a subordinate bill in a hierarchy, BRM rejects the request.
  • When you request a corrective bill for the parent bill in a hierarchy, BRM creates corrective bills for the parent bill and all the subordinate bills in the hierarchy. The corrective bill includes all A/R actions applied up to that point in time for the parent bill and all subordinate bills.

  • When BRM generates a corrective bill for the parent bill in a hierarchy,

    • It assigns a new bill number to the parent bill and to all the subordinate bills in a hierarchy.

    • It assigns a new bill due date to the billable items in the parent bill and to the billable items in all the subordinate bills in the hierarchy.

    • It maintains bill history of all the subordinate bills in the hierarchy.

About Generating and Viewing Corrective Bills in BRM

Corrective billing is an optional feature in BRM. When you initially install BRM, it enables you to generate regular bills and invoices only. By default, BRM does not generate corrective bills and invoices.

To generate corrective bills and corrective invoices, you must enable the EnableCorrectiveInvoices business parameter in the billing instance of the /config/business_params object. See "Enabling Corrective Billing in BRM" for more information.

Regulating Permissions for CSR Roles

By default, BRM provides all CSRs with permission to create corrective bills. When the CSR role has permission to generate corrective bills, Customer Center enables the Produce Corrective Bill entry as a selection item in the drop-down menu for Actions in the Balance tab. See BRM Customer Center Online Help for more information.

Validating Bills for the Corrective Billing Process

The corrective billing process uses the PCM_OP_BILL_MAKE_CORRECTIVE_BILL opcode to provide standard validations. This opcode calls the PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL policy opcode to complete the policy validations on a selected bill.

For more information on the PCM_OP_BILL_MAKE_CORRECTIVE_BILL opcode and the PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL policy opcode, see BRM Developer's Reference.

Standard Validations Performed by BRM

PCM_OP_BILL_MAKE_CORRECTIVE_BILL checks to see whether you enabled corrective billing and whether the corrective bill is for a finalized bill. If the bill is part of a hierarchy, it checks whether you are requesting a corrective bill for the parent bill. The opcode returns an error if you attempt to generate a corrective bill for the subordinate bill in a hierarchy.

Policy Validations Performed by BRM

By default, the PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL policy opcode checks the bill and returns its findings to PCM_OP_BILL_MAKE_CORRECTIVE_BILL. Then, PCM_OP_BILL_MAKE_CORRECTIVE_BILL continues or terminates its process based on the output from the PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL policy opcode. For more information, see PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL in BRM Developer's Reference.

The checks performed by the PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL policy opcode are as follows:

  • The policy opcode verifies that an invoice exists for the (original or corrective) bill for which you are attempting to generate a corrective bill. If there is no invoice associated with that bill, the policy opcode does not permit the generation of a corrective bill. It enters an error message in the PIN_FLD_ERROR_DESCR field and stops any further validation on the bill.

  • If there are no A/R charges for the prior bill, the policy opcode verifies that it is creating only a replacement invoice for that bill. If a replacement invoice is not being generated for the corrective bill, the policy opcode enters an error message in the PIN_FLD_ERROR_DESCR field and stops any further validation on the bill.

  • When balance forward accounting is associated with a bill, the policy opcode verifies that the corrective bill is being generated for the last bill in the billing cycle. If this validation fails, the policy opcode enters a PIN_BILL_VALIDATION_BILL_NOT_LAST flag in the PIN_FLD_FLAGS field. (For open item accounting, BRM permits the generation of corrective bills for any previous cycle.)

  • The policy opcode verifies whether you enabled a corrective bill to be generated when there is a payment to be processed against that bill (see "Generating Corrective Bills for Partially or Fully Paid Bills"). If this validation fails, the policy opcode enters a PIN_BILL_VALIDATION_NOT_PAID flag in the PIN_FLD_FLAGS field.

  • The sum of the corrections must equal or exceed the specified amount threshold necessary to create the corrective bill. If this validation fails, the policy opcode enters a PIN_BILL_VALIDATION_AR_TOO_LOW flag in the PIN_FLD_FLAGS field. See "Specifying the Threshold Amount for Corrective Bills" for more information.

You can customize the policy validations for corrective bills. See "Setting Up Custom Validations for Corrective Bills" for more information.

About Numbering Corrective Bills in BRM

BRM assigns a new bill number to each corrective bill that it generates. See "About Bill Numbering in BRM" for information on bill numbering. If the corrective bill belongs to a hierarchy, BRM assigns the new bill number to all the bills in the hierarchy.

By default, corrective bill numbering is enabled in BRM. That is, when a corrective bill is generated for a prior bill with B1-189 as its bill number, BRM assigns CB1 as the prefix and uses PIN_SEQUENCE_TYPE_CORR_BILL_NO to obtain the sequence number currently available for corrective bills in BRM, (for example, 15). The bill number for the corrective bill is set to CB1-15. For subsequent corrections, BRM retains the prefix from the previous corrective bill and assigns the next available sequence number associated with PIN_SEQUENCE_TYPE_CORR_BILL_NO.

If corrective bills are to retain the prefix and sequence number available for regular bills, you change the default value by setting the GenerateCorrectiveBillNo business parameter to disabled in the /config/business_params object.

When you change the default setting for the GenerateCorrectiveBillNo business parameter, BRM retains the original bill's prefix and uses PIN_SEQUENCE_TYPE_BILL_NO to obtain the sequence number currently available for regular bills in BRM. For example, if PIN_SEQUENCE_TYPE_BILL_NO yields 2007 as the next available sequence number in BRM, the bill number for the corrective bill for a prior bill with B1-189 as its bill number is set to B1-2007.

For subsequent corrections, BRM retains the prefix from the previous corrective bill and assigns the next available sequence number associated with PIN_SEQUENCE_TYPE_BILL_NO.

You can also set up custom numbering for corrective bills.

See "Setting Up Bill Numbers for Corrective Bills" for more information.

About Maintaining a Bill's History

BRM preserves the historical information for every bill that it corrects by maintaining a /history_bills object for each corrected bill.

Before BRM generates a corrective bill for a regular bill, Bill Now, or Bill On Demand, it saves a copy of the regular or corrective bill as a /history_bills object in the BRM database. If the bill being corrected is the parent bill in a hierarchy, BRM stores copies of the parent bill and all subordinate bills in that hierarchy as /history_bills objects.

Table 2-1 shows an example of a bill and its corrective bill objects in the BRM database. The original bill is numbered B1-1234, and its corrections are CB1-207 and CB1-226.

Table 2-1 Objects Stored by BRM for Corrective Billing

Action Performed Bill Object Stored Bill History Object Stored

Finalize a bill

B1-1234

None

Create First Corrective Bill

CB1-207

The following entries are stored:

  1. B1-1234

  2. CB1-207

Create Second Corrective Bill for Bill

CB1-226

The following entries are stored:

  1. B1-1234

  2. CB1-207

  3. CB1-226


An account's original bill and all of its corrective bills have the same POID. For more information on the /history_bills object, see BRM Developer's Reference.

Corrective Invoice Document Types in BRM

A corrective invoice document in BRM can be either of the following:

  • Replacement invoice: Shows all the items and events from the original bill with the corrected amounts.

  • Invoice correction letter: Lists only the corrections.

BRM can create detailed or summary versions of those documents. For more information, see BRM Designing and Generating Invoices.

By default, BRM stores a detail replacement invoice as the default type of corrective invoice document for corrective bills.

BRM stores the type of corrective invoice document in an event object when it generates the corrective bill. If you provide a different value for the type of corrective invoice document when you run the pin_inv_accts utility, this setting is ignored.

For more information, see the discussion on corrective invoicing in BRM Designing and Generating Invoices.

About Threshold Amounts for Corrective Billing

You can specify a minimum amount that the A/R actions for a bill should reach for BRM to generate a corrective bill. If the bill to be corrected belongs to a bill hierarchy, BRM checks that threshold against the sum of A/R actions for all accounts which had charges contributing to that bill.

The CorrectiveBillThreshold business parameter in the /config/business_params object acts as your default threshold for generating corrective bills. The default value for CorrectiveBillThreshold is 0.

You specify the threshold amount for generating a corrective bill as follows:

Correction Reasons for Corrective Billing

BRM provides the following default reasons for correcting a bill:

  • Update to the invoice address

  • Manual adjustment

  • Price correction

BRM stores these reasons in reasons.en_US, in the BRM_home/sys/msgs/reasoncodes directory, where BRM_Home is the directory where you installed BRM components. It assigns the IDs of 1, 2, and 3 respectively to these reasons and uses 43 in the version field to specify the domain of the reason. See "Providing Custom Reason Codes for Bill Corrections" for more information.

For more information on string manipulations functions and reason codes, see BRM Developer's Reference.

About Payment Due Dates for Corrective Bills

BRM determines due dates for regular and corrective bills by using the PCM_OP_BILL_POL_CALC_PYMT_DUE_T policy opcode.

By default, the PCM_OP_BILL_POL_CALC_PYMT_DUE_T policy opcode recalculates the due dates for corrective bills starting with the current time when the opcode generates the corrective bill and taking into account the payment terms. For example, if the payment terms set the due date for a bill to be 30 days from the billing date, and the corrective bill was generated on April 12, the due date for the corrective bill would be May 12.

For information, see PCM_OP_BILL_POL_CALC_PYMT_DUE_T facility module opcode in BRM Developer's Reference.

Handling Payments for Bills with Corrections

Corrections to bill charges and bill payments may not always be synchronized operations. That is, you may receive payments where the bill number associated with a payment does not match the last bill or you may have received a partial or full payment for that original or corrective bill.

Processing Payments for Previous Bills

By default, after BRM generates a corrective bill for a prior bill, BRM accepts payments it receives for the regular bill, the corrective bill, or both, but it applies the payments to the latest (original or corrective) bill only.

For example, BRM has a regular bill B1-124 for which it generates two corrective bills (CB1-28 and CB1-30) in one bill period. For BRM, CB1-30 is the last bill and B1-124 and CB1-28 are prior bills. By default, all payments that BRM receives for B1-124 or CB1-28 or CB1-30 will be applied against CB1-30.

You can require payments to be specific to the bill and reject payments for prior bills. To do so, set the RejectPaymentsForPreviousBill business parameter in the billing instance of the /config/business_params object to enabled. BRM will reject the payments to the prior bills and send the rejected payments to Payment Suspense Manager. See "Rejecting Payments for Prior Bills" for more information.

Processing Payments Received before Creating a Corrective Bill

By default, if BRM receives a partial or full payment for a bill, it does not enable a corrective bill to be generated for that bill. Instead, BRM assigns all corrections for that bill period to the next open bill.

To enable BRM to generate a corrective bill for a bill that has a full or partial payment, set the AllowCorrectivePaidBills parameter in the billing instance of the /config/business_params object to enabled. BRM then generates the corrective bill, and the balance on the corrective bill reflects the payment that was received against the prior bill. The corrective bill also displays the payment details for payments already processed against the prior bill. See "Generating Corrective Bills for Partially or Fully Paid Bills" for more information.

Processing Payments Received before Issuing a Corrective Invoice

When BRM processes payments for a bill before it issues the corrective invoice for the bill, the corrective bill includes all the payment details for payments already processed against that bill.

It is recommended that, when you generate a corrective bill, you should also generate the corrective invoice for that corrective bill. A/R actions that occur between the time a corrective bill and its corrective invoice are generated may lead to incorrect invoices.

Processing Payments after Issuing a Corrective Invoice

After BRM issues the corrective invoice for a corrective bill, it cancels the original invoice for the bill and processes subsequent payments against the corrective bills for that billed period. Payments become due on the new due dates associated with the corrective invoice for the corrected bill.

If a payment is allocated to specific bill items on the original invoice, BRM processes that payment against the latest corrected balance for the bill items. Any payment that is in excess is automatically credited to the balance on the account.

About Open Item Accounting and Rerating

If you rerate events in billing cycles other than the current billing cycle for accounts which have open item accounting, you should generate corrective bills for those previous bills. In such a scenario, it is recommended that you generate corrective bills and corrective invoices for all the previous bills that were affected by the rerating. When you generate corrective invoices for such corrected bills, the rerated events are displayed in the corrective invoices. They will not be displayed in the regular bill for the current cycle.

If you do not create a corrective bill for the previous bill, these rerated events are included in the regular bill for the current cycle.

About Handling Updates to Discount Sharing and Charge Sharing

You must rerate accounts following updates to the discount sharing and charge sharing for those accounts in a billed period. BRM includes the resulting adjustments in the corrective bills you generate for the billed period.

About Collections

BRM does not initiate payment collection actions for bills that have been replaced by a corrective bill. See "Post-Processing Actions for Corrective Bills" for more information.

Preventing Corrective Bill Generation to Handle A/R Actions

Disputes, settlements, and write-offs impact the content of a corrective bill. To prevent the generation of corrective bills for certain A/R actions, set up a custom validation policy for BRM to use when you generate the corrective bills. Such a validation could be used to prevent BRM from generating corrective bills when the prior bill is in dispute and a settlement has not been reached.

For information on disputes, settlements, and write-offs, see BRM Managing Accounts Receivable.

Disputes

Corrective bills can be generated for a dispute entered at the bill level, item level, or event level. When BRM generates the corrective bill for a dispute, the corrective bill contains the dispute details, the disputed bill item, and the updated bill balance.

Settlements

Corrective bills can be generated for a dispute settled at the bill level, item level, or event level. When BRM generates the corrective bill for a settlement, the corrective bill contains the settlement details, the settled bill item, and the updated bill balance.

A dispute may be settled for the full amount of the dispute in the customer's favor. If you generate a corrective bill during such a dispute, the corrective bill generated at settlement time may become a duplicate because there may not be any corrections to the second bill.

Write-Offs

You perform write-offs after the account is past due and considered delinquent in collections. When BRM generates the corrective bill for a write-off, the corrective bill contains the write-off details, the written-off bill item, and the updated bill balance.

About Automatic Allocation from Rerating

By default, BRM creates unallocated items for any adjustment items that are created as a result of rerating. For information about the rerating process in BRM, see BRM Setting Up Pricing and Rating.

If you require that corrective bills should contain the aggregation and allocation of automatic adjustments to the items on the original bill, you must enable the AllocateReratingAdjustments business parameter before you rerate the original bills. When the AllocateReratingAdjustments business parameter is enabled, adjustment details by original item by original bill are reported on the next bill for regular billing also.

To ensure that the corrective billing process includes or excludes these adjustments, check the setting for the AllocateReratingAdjustments business parameter before you run the rerating process.

If BRM has rerated a /bill object without allocating automatic adjustments (from the rerating) to the original bills, the corrective bill for that /bill object will not include the item adjustments generated by that rerating.

Note:

For such a /bill object, if you set the AllocateReratingAdjustments business parameter to enabled and rerun the rerating process for the bill, BRM does not allocate the adjustments.

You must manually allocate the rerated items before you generate the corrective bill for such a /bill object.

If you enable BRM to automatically allocate the item adjustments generated by the rerating process to the original bill, BRM allocates adjustments to the bill items being corrected in the following manner:

  • For open item accounting, the adjustment items are allocated to each bill that was corrected. Allocation is made to each of the original bills that included events or items that were corrected by these adjustments.

  • For balance forward accounting, corrections are posted to the last bill only. Therefore, the rerating allocation is made to the final bill only. This final bill carries over the balances from all prior bill periods.

See "Enabling Automatic Allocation of Adjustments from Rerating" for more information.

When BRM Generates Corrective Bills

You can have multiple corrections for a single bill. BRM generates corrective bills differently based on whether the corrections occur in the same period or in multiple periods.

How BRM Handles Multiple Bill Corrections in the Same Period

When there are multiple corrections for a bill period, BRM corrects the most recent corrective bill for the period. BRM includes first-time corrections on the most recent corrective bill and also events or items that were previously corrected and billed on previous corrective bills.

Table 2-2 shows multiple corrections for a bill. From the Actions menu on the Bill Details page in Customer Center, if you select:

  • Corrections Only to view the corrective bill for Dec. 27, only the numbers for "Usage Y Adjustment" are displayed.

  • Show All to view the corrective bill for Dec. 27, the numbers for "Usage X Adjustment" and "Usage Y Adjustment" are displayed.

Table 2-2 How BRM References Multiple Bills in One Period

Date Event Type of Bill Created Bill Number Assigned to This Bill Bill Number of the Bill Corrected

Nov. 30

Create Bill

Original

B-168

None

Dec. 10

Adjust for Cash Forward event; Correct the bill

Corrective

CB1-7

B-168

Dec. 15

Usage X Adjustment

Corrective

CB1-13

CB1-7

Dec. 27

Usage Y Adjustment

Corrective

CB1-19

CB1-13


How BRM Handles Bill Corrections Spanning Multiple Periods

When corrections span multiple billed periods, BRM uses the accounting method specified in the account to determine the period for which to generate the corrective bill. For more information on BRM accounting types, see "About Accounting Types".

Balance Forward Accounting Type

For accounts using the balance forward accounting method, BRM generates a single corrective bill for the last billed period.

Open Item Accounting Type

For accounts using the open item accounting method, BRM creates corrective bills for each billed period which contains corrections. For example, an account has corrections in the October bill and the November bill. BRM generates two corrective bills, one for October and one for November.

If the October bill was already paid, BRM includes the corrections for the October period to the next open bill, which in this case is the bill for December. The corrections for the November period are included in the November bill because that bill is still pending payment.

Setting Up the Corrective Billing Process in BRM

Complete the following to set up the corrective billing process in BRM. Some steps are optional.

Enabling Corrective Billing in BRM

You can enable corrective billing by modifying the billing instance of the /config/business_params object.

To enable corrective billing:

  1. Go to the BRM_Home/sys/data/config directory, where BRM_Home is the directory where you installed BRM components.

  2. Use the following command to create an editable XML file from the billing instance of the /config/business_params object:

    pin_bus_params -r BusParamsBilling bus_params_billing.xml
    

    This command creates the XML file named bus_params_billing.xml.out in your working directory. To place this file in a different directory, specify the path as part of the file name.

  3. Open the bus_params_billing.xml.out file.

  4. Search for the following line.

    <EnableCorrectiveInvoices>disabled</EnableCorrectiveInvoices>
    
  5. Change disabled to enabled.

    Caution:

    BRM uses the XML in this file to overwrite the existing billing instance of the /config/business_params object. If you delete or modify any other parameters in the file, these changes affect the associated aspects of the BRM subscription configurations.
  6. Save this file as bus_params_billing.xml.

  7. Use the following command to load this change into the appropriate /config/business_params object. (Execute this command from the BRM_Home/sys/data/config directory.)

    pin_bus_params PathToWorkingDirectory/bus_params_billing.xml
    

    Where PathToWorkingDirectory is the directory in which bus_params_billing.xml resides.

    Note:

    To execute it from a different directory, see the description for pin_bus_params in BRM Developer's Guide.
  8. Read the object with the testnap utility or Object Browser to verify that all fields are correct.

    See "Using testnap" in BRM Developer's Guide for general instruction on using the testnap utility. See "Reading Objects by Using Object Browser" in BRM Developer's Guide for information on how to use Object Browser.

  9. Stop and restart the Connection Manager (CM). For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

  10. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see "pin_multidb" in BRM System Administrator's Guide.

Restricting CSR's Permission to Corrective Billing

To restrict the permission for CSR roles:

  1. In Permissioning Center, restrict the permissions for the required CSR roles. For more information on setting up permissions, see "Setting Up Permissions in BRM Applications" in BRM System Administrator's Guide.

  2. Stop and restart the CM.

Specifying the Corrective Invoice Type for a Corrective Bill

You can provide the corrective invoice type for a corrective bill during the billing process.

Specifying the Default Invoice Type at the Account Level

Set up a default type of corrective invoice in the PIN_FLD_INV_TYPE field of the /payinfo object before you start generating corrective bills.

Use the PCM_OP_CUST_POL_PREP_PAYINFO policy opcode to override the default value (0, which yields a detail replacement invoice). For more information, see PCM_OP_CUST_POL_PREP_PAYINFO in BRM Developer's Reference. For information on how BRM arrives at the type of corrective invoice, see "pin_inv_accts" in BRM Designing and Generating Invoices.

Specifying the Invoice Type When Creating the Corrective Bill

You associate a corrective invoice type with a corrective bill when you generate the corrective bill in one of the following ways:

  • In Customer Center, select Replacement Invoice or Invoice Correction Letter from the menu for Invoice Correction Type and Summary or Detail from the menu for Invoice Correction Format. Then, select Produce Customer Bill to generate the corrective bill. See the description for the Balance tab in BRM Customer Center Help.

  • Run the pin_make corrective_bill utility with the -corrective_inv_type parameter set to one entry from each of the following:

    • R or L. R indicates Replacement Invoice and L indicates Invoice Correction Letter as the selected type of corrective invoice.

    • S or D. S indicates Summary and D indicates Detail version of the selected type of corrective invoice.

    Enter the two values separated by a blank. For example, to generate a detail replacement invoice,

    pin_make_corrective_bills -corrective_inv_type R D

    If you omit one of the entries or omit the blank between the two entries, the pin_make corrective_bill utility will fail to generate a corrective bill for that bill.

    See "pin_make_corrective_bills" for more information.

Setting Up Custom Validations for Corrective Bills

To set up custom validations for corrective billing, modify the existing validations in the PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL policy opcode or add custom validations. For more information, see PCM_OP_BILL_POL_VALID_CORRECTIVE_BILL in BRM Developer's Reference.

Setting Up Bill Numbers for Corrective Bills

The default numbering format for both regular and collective bills has been described under "About Bill Numbering in BRM".

Change the default bill numbering for corrective bills for the following reasons:

Retaining the Numbering Format Used for Regular Bills

To retain the numbering format you used for regular bills:

  1. Use the following command to create an editable XML file from the billing instance of the /config/business_params object:

    pin_bus_params -r BusParamsBilling bus_params_billing.xml
    

    This command creates the XML file named bus_params_billing.xml.out in your working directory. To place this file in a different directory, specify the path as part of the file name.

  2. Open the bus_params_billing.xml.out file.

  3. Search for the following line.

    <GenerateCorrectiveBillNo>enabled<GenerateCorrectiveBillNo>
    
  4. Change enabled to disabled.

    Caution:

    BRM uses the XML in this file to overwrite the existing billing instance of the /config/business_params object. If you delete or modify any other parameters in the file, these changes affect the associated aspects of the BRM subscription configurations.
  5. Save this file as bus_params_billing.xml.

  6. Go to the BRM_Home/sys/data/config directory which includes support files used by the pin_bus_params utility.

  7. Use the following command to load this change into the appropriate /config/business_params object.

    pin_bus_paramsPathToWorkingDirectory/bus_params_billing.xml
    

    where PathToWorkingDirectory is the directory in which bus_params_billing.xml resides.

    Note:

    To execute it from a different directory, see the description for pin_bus_params in BRM Developer's Guide.
  8. Read the object with the testnap utility or Object Browser to verify that all fields are correct.

    See "Using testnap" in BRM Developer's Guide for general instruction on using the testnap utility. See "Reading Objects by Using Object Browser" in BRM Developer's Guide for information on how to use Object Browser.

  9. Stop and restart the Connection Manager (CM). For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

  10. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see "pin_multidb" in BRM System Administrator's Guide.

Customizing the Bill Numbering Format

You can customize the bill number prefix and change the starting sequence number for the bill objects. See "Customizing Bill and Invoice Numbers" for more information.

Customizing Due Dates for Corrective Bills

You can apply different due dates to corrective bills by customizing the bill due date calculations. Modify the PCM_OP_BILL_POL_CALC_PYMT_DUE_T policy opcode to retain the same due date as in the prior bill, or add a specific number of offset days. See "Customizing Bill Due Date Calculations for Payment Terms" for more information.

Specifying Correction Reasons

You can specify correction reasons:

  • When you create a corrective bill from Customer Center. You can select a reason for the correction.

  • When you run the pin_make_corrective_bills utility. You provide the correction reason.

Providing Custom Reason Codes for Bill Corrections

You can provide custom corrections reasons for bill correction by modifying an existing reason code or adding a custom reason code to the reasons.en_US file.

Here is an example code sample to add a reason code:

DOMAIN = "Reason Codes-Bill Correction Reasons";
STR
    ID = 25;
    VERSION = 43;
    STRING = "Corrective bill request for Error in Promotion ABC";
END

When you add or modify a reason code, ensure that ID is a number greater than 3 and the value for version is 43 (see the preceding example). These values are reserved by BRM.

Use the load_localized_strings utility to load the modified reasons.en_US file. For instructions on providing custom reason codes, see "String Manipulation Functions" in BRM Developer's Reference. For instructions on the load_localized_strings utility, see "load_localized_strings" in BRM Developer's Guide.

Specifying the Threshold Amount for Corrective Bills

You specify the minimum threshold amount for corrective bills by setting the CorrectiveBillThreshold business parameter in the /config/business_params object. The default value is 0.

To set the CorrectiveBillThreshold business parameter:

  1. Use the following command to create an editable XML file from the billing instance of the /config/business_params object:

    pin_bus_params -r BusParamsBilling bus_params_billing.xml
    

    This command creates the XML file named bus_params_billing.xml.out in your working directory. To place this file in a different directory, specify the path as part of the file name.

  2. Open the bus_params_billing.xml.out file.

  3. Search for the following line:

    <CorrectiveBillThreshold>0</CorrectiveBillThreshold>
    
  4. Change 0 to the required value. For example,

    <CorrectiveBillThreshold>15</CorrectiveBillThreshold>
    

    Caution:

    BRM uses the XML in this file to overwrite the existing billing instance of the /config/business_params object. If you delete or modify any other parameters in the file, these changes affect the associated aspects of the BRM subscription configurations.
  5. Save this file as bus_params_billing.xml.

  6. Go to the BRM_Home/sys/data/config directory which includes support files used by the pin_bus_params utility.

  7. Use the following command to load this change into the appropriate /config/business_params object.

    pin_bus_paramsPathToWorkingDirectory/bus_params_billing.xml
    

    where PathToWorkingDirectory is the directory in which bus_params_billing.xml resides.

    Note:

    To execute it from a different directory, see the description for pin_bus_params in BRM Developer's Guide.
  8. Read the object with the testnap utility or Object Browser to verify that all fields are correct.

    See "Using testnap" in BRM Developer's Guide for general instruction on using the testnap utility. See "Reading Objects by Using Object Browser" in BRM Developer's Guide for information on how to use Object Browser.

  9. Stop and restart the CM. See "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

  10. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see "pin_multidb" in BRM System Administrator's Guide.

Providing Threshold Amounts Based on Customers

You can provide specific threshold amount based on a customer or set of customers when you run the pin_make_corrective_bills utility.

To use different thresholds for a customer or customers in a specific segment:

  1. Run the pin_make_corrective_bills utility separately for the customers in that specific segment.

  2. Enter the appropriate threshold as the value for the -threshold_amount input parameter to the pin_make_corrective_bills utility.

See "Billing Utilities" for more information on the pin_make_corrective_bills utility.

Enabling Automatic Allocation of Adjustments from Rerating

You enable automatic allocation of rerating adjustments by setting the AllocateReratingAdjustments business parameter in the /config/business_params object by using the pin_bus_params utility.

To set the AllocateReratingAdjustments business parameter:

  1. Use the following command to create an editable XML file from the rerate instance of the /config/business_params object:

    pin_bus_params -r BusParamsRerate bus_params_rerate.xml
    

    This command creates the XML file named bus_params_rerate.xml.out in your working directory. To place this file in a different directory, specify the path as part of the file name.

  2. Open the bus_params_rerate.xml.out file.

  3. Search for the following line.

    <AllocateReratingAdjustments>disabled</AllocateReratingAdjustments>
    
  4. Change disabled to enabled.

    Caution:

    BRM uses the XML in this file to overwrite the existing rerate instance of the /config/business_params object. If you delete or modify any other parameters in the file, these changes affect the associated aspects of the BRM subscription configurations.
  5. Save this file as bus_params_rerate.xml.

  6. Go to the BRM_Home/sys/data/config directory, which includes support files used by the pin_bus_params utility.

  7. Use the following command to load this change into the appropriate /config/business_params object.

    pin_bus_paramsPathToWorkingDirectory/bus_params_rerate.xml
    

    where PathToWorkingDirectory is the directory in which bus_params_rerate.xml resides.

    Note:

    To execute it from a different directory, see the description for pin_bus_params in BRM Developer's Guide.
  8. Read the object with the testnap utility or Object Browser to verify that all fields are correct.

    See "Using testnap" in BRM Developer's Guide for general instruction on using the testnap utility. See "Reading Objects by Using Object Browser" in BRM Developer's Guide for information on how to use Object Browser.

  9. Stop and restart the CM. For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

  10. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see "pin_multidb" in BRM System Administrator's Guide.

Rejecting Payments for Prior Bills

You can reject payments for prior bills (and thereby require them to be specific to the bill) by setting the RejectPaymentsForPreviousBill business parameter in the /config/business_params object. When you do so, BRM sends the rejected payments to Payment Suspense Manager.

To reject payments for prior bills and require them to be specific to the bill:

  1. Use the following command to create an editable XML file from the billing instance of the /config/business_params object:

    pin_bus_params -r BusParamsBilling bus_params_billing.xml
    

    This command creates the XML file named bus_params_billing.xml.out in your working directory. To place this file in a different directory, specify the path as part of the file name.

  2. Open the bus_params_billing.xml.out file.

  3. Search for the following line:

    <RejectPaymentsForPreviousBill>disabled</RejectPaymentsForPreviousBill>
    
  4. Change disabled to enabled.

    Caution:

    BRM uses the XML in this file to overwrite the existing billing instance of the /config/business_params object. If you delete or modify any other parameters in the file, these changes affect the associated aspects of the BRM subscription configurations.
  5. Save this file as bus_params_billing.xml.

  6. Go to the BRM_Home/sys/data/config directory, which includes support files used by the pin_bus_params utility.

  7. Use the following command to load this change into the appropriate /config/business_params object.

    pin_bus_paramsPathToWorkingDirectory/bus_params_billing.xml
    

    where PathToWorkingDirectory is the directory in which bus_params_billing.xml resides.

    Note:

    To execute it from a different directory, see the description for pin_bus_params in BRM Developer's Guide.
  8. Read the object with the testnap utility or Object Browser to verify that all fields are correct.

    See "Using testnap" in BRM Developer's Guide for general instruction on using the testnap utility. See "Reading Objects by Using Object Browser" in BRM Developer's Guide for information on how to use Object Browser.

  9. Stop and restart the CM. For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

  10. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see "pin_multidb" in BRM System Administrator's Guide.

Generating Corrective Bills for Partially or Fully Paid Bills

You can generate corrective bills for fully paid or partially paid bills by setting the AllowCorrectivePaidBills business parameter in the /config/business_params object by using the pin_bus_params utility.

To generate corrective bills for fully paid or partially paid bills:

  1. Use the following command to create an editable XML file from the billing instance of the /config/business_params object:

    pin_bus_params -r BusParamsBilling bus_params_billing.xml
    

    This command creates the XML file named bus_params_billing.xml.out in your working directory. To place this file in a different directory, specify the path as part of the file name.

  2. Open the bus_params_billing.xml.out file.

  3. Search for the following line:

    <AllowCorrectivePaidBills>disabled</AllowCorrectivePaidBills>
    
  4. Change disabled to enabled.

    Caution:

    BRM uses the XML in this file to overwrite the existing billing instance of the /config/business_params object. If you delete or modify any other parameters in the file, these changes affect the associated aspects of the BRM subscription configurations.
  5. Save this file as bus_params_billing.xml.

  6. Go to the BRM_Home/sys/data/config directory, which includes support files used by the pin_bus_params utility.

  7. Use the following command to load this change into the appropriate /config/business_params object.

    pin_bus_paramsPathToWorkingDirectory/bus_params_billing.xml
    

    where PathToWorkingDirectory is the directory in which bus_params_billing.xml resides.

    Note:

    To execute it from a different directory, see the description for pin_bus_params in BRM Developer's Guide.
  8. Read the object with the testnap utility or Object Browser to verify that all fields are correct.

    See "Using testnap" in BRM Developer's Guide for general instruction on using the testnap utility. See "Reading Objects by Using Object Browser" in BRM Developer's Guide for information on how to use Object Browser.

  9. Stop and restart the CM. For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

  10. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter. For more information, see "pin_multidb" in BRM System Administrator's Guide.

Generating Corrective Bills

After you have configured corrective billing, you are ready to generate corrective bills.

You can generate corrective bills in one of the following ways:

  • Allocate adjustments to a selected bill in the Customer Center and submit the bill for corrective billing. For more information, see Customer Center Help.

  • Run the pin_make_corrective_bills utility which generates the corrective bill.

Whether you generate corrective bills using Customer Center or the pin_make_corrective_bills utility, BRM runs the PCM_OP_BILL_MAKE_CORRECTIVE_BILL opcode to generate the required corrective bills. For more information on PCM_OP_BILL_MAKE_CORRECTIVE_BILL, see BRM Developer's Reference.

After you begin the process of generating a corrective bill, you cannot cancel the process.

Generating Corrective Bills Using Customer Center

To generate a corrective bill through Customer Center, you select the bill to be corrected, select the necessary adjustments to apply to the bill, select the type of corrective invoice you require, and submit the bill and its adjustments to BRM for corrective billing.

When BRM creates the corrective bill, it displays the bill number for the corrective bill. The Balances tab displays the contents of the newly-generated corrective bill. If there was an error, BRM provides the details for the error in the log file for the utility.

For more information, see Customer Center Help.

Generating Corrective Bills for Bills without Charge Corrections

Charge corrections are corrections to charges on a bill that result from adjustments, dispute, settlements, payments, writeoff, or writeoff reversal, and so on.

By default, the pin_make corrective_bills utility generates corrective bills for bills with charge corrections only. To run the pin_make corrective_bills utility and generate corrective bills when there are only simple changes such as invoice address changes, call this utility with -create_if_no_corrections parameter set to Y and -corrective_inv_type parameter set to R.

Note:

When the opcode called by pin_make corrective_bills creates the /event /billing/corrective_bill object for a bill associated with no charge corrections, the opcode sets the corrective invoice type in that object to be replacement invoice only.

For a detailed replacement invoice, run pin_make corrective_bills with the following entries:

pin_make_corrective_bills -create_if_no_corrections Y -corrective_inv_type R D

For a summary replacement invoice, run pin_make corrective_bills with the following entries:

pin_make_corrective_bills -create_if_no_corrections Y -corrective_inv_type R S

See the description for pin_make corrective_bill in "pin_make_corrective_bills".

How PCM_OP_BILL_MAKE_CORRECTIVE BILL Works

When you generate corrective bills by using Customer Center or the pin_make_corrective_bills utility, BRM calls the PCM_OP_BILL_MAKE_CORRECTIVE_BILL opcode.

The PCM_OP_BILL_MAKE_CORRECTIVE_BILL opcode does the following:

  1. Locks the bill's /billinfo object. After BRM locks a /billinfo object, it does not accept any corrections until the /billinfo object is unlocked.

    Caution:

    If User A and User B both access a bill and User A submits the bill for corrective billing, BRM locks the /billinfo object. BRM applies any adjustments made by User B to the corrected bill object only after BRM unlocks the /billinfo object.

    Also, if User B had applied the adjustment before User A submitted the bill for correction, the corrected bill will contain both adjustments.

  2. Verifies that a corrective bill can be generated for the corrections by completing the following:

    If Customer Center calls this opcode and the bill fails to validate, the opcode returns the information to Customer Center, which then displays an appropriate message requiring you to take necessary actions.

    If the opcode validates that a corrective bill can be generated and such a bill is to be generated, the opcode continues its process. It creates the /history_bills object for the /billinfo object. See "About Maintaining a Bill's History".

  3. Checks to see whether the pin_make_corrective_bills utility called it with the -validate_only parameter. If so, this opcode reports whether BRM can generate a corrective bill for the selected bill and does not proceed further.

  4. Assigns a new bill number for the corrective bill. See "Setting Up Bill Numbers for Corrective Bills".

  5. Sets the due date for the corrective bill. See "Customizing Due Dates for Corrective Bills".

  6. Creates the /event/billing/corrective_bill object for the prior bill in the following way:

    • The opcode includes all the A/R actions applied or allocated to the prior bill. These actions impact the totals or balances for the respective bill items and the bill. For the bill items that do not have any A/R action, BRM stores the value from the original bill in the current bill.

      The following entries for the PIN_FLD_FLAGS field in a bill object indicate that there was an allocation of settlement or refund for the bill. The BRM_Home/include/pin_flds.h file contains the values that BRM uses in the PIN_FLD_FLAGS field for a corrective bill.

      #define PIN_BILL_FLG_SETTLEMENT_ALLOC 0x200
      #define PIN_BILL_FLG_REFUND_ALLOC 0x400
      
    • The opcode stores a correction reason you provide. See "Specifying Correction Reasons".

    • The opcode stores the name for the corrective bill. The BRM_Home/include/pin_bill.h file contains the values that BRM uses in the PIN_FLD_NAME field for a corrective bill:

      #define PIN_OBJ_NAME_CORRECTIVE_BILL "PIN Corrective Bill"
      #define PIN_OBJ_NAME_CORRECTIVE_BILL_NOW "PIN Corrective Bill Now"
      #define PIN_OBJ_NAME_CORRECTIVE_BILL_ON_DEMAND "PIN Corrective Bill On Demand"
      

If the opcode encounters an error in generating the corrective bill, it logs an error against the prior bill in the default.pinlog utility log file and does not generate the corrective bill.

When this opcode is run by Customer Center, BRM displays a message to indicate the success or error of the process. Review the default.pinlog file for errors and take necessary actions. This file is located either in the directory from which you started the utility or in a directory specified in the configuration file.

Generating Corrective Bills with the pin_make_corrective_bills Utility

The pin_make_corrective_bills utility generates corrective bills for specific bill numbers or account numbers.

To generate a corrective bill using pin_make_corrective_bills:

  1. If you plan to input the bill numbers or account numbers using a billing run configuration file, set up the necessary file. The default file is pin_bill_run_control.xml in the BRM_home/apps/pin_billd directory. See "About Bill Run Management" for a sample billing run configuration file.

  2. Go to the BRM_Home/apps/pin_billd (or appropriate) directory where this file resides.

  3. Verify that the selected accounts or bills are eligible for corrective billing by running the following command:

    cd BRM_Home/apps/pin_billd
    pin_make_corrective_bills –validate_only
    

    The utility writes the information for each bill to the log file for the utility.

  4. Check the log file for error messages and act as necessary.

  5. Run the pin_make_corrective_bills utility, providing all the necessary inputs. Omit the –validate_only parameter.

    For more information on the pin_make_corrective_bills utility, see "pin_make_corrective_bills".

  6. Check the default.pinlog log file for error messages and act as necessary.

  7. Verify the contents of the newly-generated corrective bills using Customer Center.

Post-Processing Actions for Corrective Bills

After you generate corrective bills, you can do the following:

  • View corrective bills. See "Viewing Corrective Bills".

  • Generate corrective invoices by running the pin_inv_accts utility. You can generate summary or detailed corrective invoices for the corrective bills you generated. See "pin_inv_accts" in BRM Designing and Generating Invoices.

  • Export corrective invoices for use with custom programs, (such as DOC1) to generate and publish the corrective invoice documents. Use the pin_inv_export utility to export invoices to a format you can use with other programs, such as DOC1. See "pin_inv_export" in BRM Designing and Generating Invoices.

  • Collect any balance due for accounts that use credit card and direct debit payment methods by running the pin_collect utility. See "pin_collect" in BRM Configuring and Collecting Payments.

  • Check whether corrective billing affected the state of any prior bills that were in collections by running the pin_collections_process utility. For more information, see "pin_collections_process" in BRM Collections Manager.

  • Manage /history_bills objects in the BRM database by running the pin_purge utility. For more information, see "pin_purge" in BRM System Administrator's Guide.

Viewing Corrective Bills

You can view all bills through Customer Center.

  • Original Bill: Customer Center displays the original bill with the adjustments and item amounts that were included with the original bill

  • Corrective Bill: Customer Center, BRM displays the A/R actions and corresponding corrected item as the details for the corrective bill. Use the Actions menu to select the level of detail:

    • Corrections Only. BRM displays unbilled A/R Actions and Items with A/R Actions (Unbilled) amount not equal to 0.

    • Show All. This is the default. BRM displays both unbilled and billed A/R Actions.

If you use an external application such as Seibel CRM, you can view only the most recent bill for a bill period, that is, the last corrective bill if it was created.