A process is provided for a billing controller receives a request
identifying a customer and indicating one of a plurality of providers for
a selected product, converts a portion of the received request into a
provisioning request based on the selected product; and provides the
provisioning request to the provider. The billing controller also
receives a request identifying a customer and including a bundle code
indicating a plurality of providers for selected products, converts
portions of the received request into provisioning requests based on the
code, and provides the provisioning requests to the providers. The
billing controller also receives usage data for a customer from a
plurality of providers, converts the usage data from each provider into a
standard usage data format based on predetermined billing rules, and
stores the converted usage data linked to a customer record. The billing
controller also accesses a stored customer record identifying a customer
and including usage data and a plurality of codes, specifies a bill
format from the codes, determines whether codes identify a selected
bundle of products from at least two providers, and generates a bill
including the usage data in the specified format. In generating the bill,
the billing controller computes any discount based on the result of the
determination, computes taxes for each of the products, and uses the
computed discount and taxes in generating the bill.