At the moment, we are using the product id, href, name to link an existing product and also denomarlize the immutable human-readable information (name fields comes handy for this) that we include on generated invoices.
Behind the scenes, for each customer bill we instantiate a complex JSON data structured stored in S3 and usable for displaying all the details we need (referenced from the bill itself - same uuid). Long story short, we keep the current swagger and enable filtering on the standard fields. Everything else used for UI is augmented without a rich JSON dedicated only by the presentation layer.
I hope it helps.
Original Message:
Sent: Mar 11, 2024 18:56
From: Avinash Kenkere
Subject: TMF 678 CustomerBill - Applied Customer Billing Rate
Hi Radu
Thanks for your reply.
Have you extended customerBill resource to also include the product and service details at the summary level ? And use appliedCustomerBillingRate to provide detailed view of the rated product and services.
------------------------------
Avinash Kenkere
Original Message:
Sent: Mar 11, 2024 01:20
From: Radu Viorel Cosnita
Subject: TMF 678 CustomerBill - Applied Customer Billing Rate
Hi Avinash,
I recently solved a similar problem as the one you are describing. Factually, we are instantiating a CustomerBill and record under it all the relevant details (e.g.: payments, total amount, external billing document, related party, ...). This entity should suffice to compute the general summary (GET /customerBill/{id}).
When you want to find out the details you can retrieve the ACBRs using GET /appliedCustomerBillingRate?bill.id={id}. For the master / detail view you are describing, this approach will nicely work.
Kind regards,
Radu
------------------------------
Radu Viorel Cosnita
TO BE VERIFIED
Original Message:
Sent: Mar 07, 2024 19:42
From: Avinash Kenkere
Subject: TMF 678 CustomerBill - Applied Customer Billing Rate
Hello Everyone,
As part of TMF 678 customerBill Management , Billing process applies or creates charges ( recurring charges , one time charges), discounts and taxes against the subscribed products and then aggregates the applied rates into bills sent to customers.
And if we want to view all the charges aggregated against the customerBill, My understanding is we should peform a GET operation on AppliedCustomerBillingRates as below
Say customerBill Id is CB-123
GET /tmf-api/customerBillManagement/v4/appliedCustomerBillingRate?customerBill.id = CB-123
However we have a requirement where the appliedCustomerBillingRates are further grouped and aggregated to show a summary view to the B2B customer ( Only Summary view is presented on the PDFs) and they can drill down the summary view to get the individual appliedCustomerBillingRates using the online UI interfaces and this grouping and summarization is performed by a formating layer which runs after the billing process.
The output from the formating layer is what is presented to the B2B customer as their bill and we are planning to expose this output as a customerBill resource ( i.e. the output of the formating layer) and use appliedCustomerBillingRate resource to also represent the summary charge, even though this summary charge was not created by the core billing process rather it was created by the formating layer.
I would like to hear some feedbacks about this approach of using appliedCustomerBillingRate to represent the summary charge.
------------------------------
Avinash Kenkere
------------------------------