Open APIs

 View Only
  • 1.  TMF 678 CustomerBill - Applied Customer Billing Rate

    TM Forum Member
    Posted Mar 07, 2024 19:43

    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
    ------------------------------


  • 2.  RE: TMF 678 CustomerBill - Applied Customer Billing Rate

    TM Forum Member
    Posted Mar 10, 2024 06:04

    Hi Avinash

    You can of course use the TMF Open API model as you please, as long as your contract is clear and you have full semantic agreement between consumers and providers.

    I would argue, however, that grouped and summarized charges (ACBR) are not themselves ACBR, and perhaps it would be advantageous to define a different entity to reflect these groups and summaries - a presentation layer construct, if you will.

    Bear in mind that ACBR are not just for bill presentment, but also for calculating customer balance, reporting to general ledger and other finance systems, being the focus of bill disputes, and more.

    Hope it helps



    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
    ------------------------------



  • 3.  RE: TMF 678 CustomerBill - Applied Customer Billing Rate

    Posted Mar 11, 2024 05:12

    Hi Avinash,

    I think for your use case you can leverage GET /customerBill/{id} endpoint for generating the summary view (it contains all the data you need for this). Whenever you navigate in the UI to the details section you can invoke GET /appliedCustomerBillingRate?bill.id={id} to obtain the details.

    Kind regards,

    Radu



    ------------------------------
    Radu Viorel Cosnita
    TO BE VERIFIED
    ------------------------------



  • 4.  RE: TMF 678 CustomerBill - Applied Customer Billing Rate

    Posted Mar 11, 2024 05:16

    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
    ------------------------------



  • 5.  RE: TMF 678 CustomerBill - Applied Customer Billing Rate

    TM Forum Member
    Posted Mar 11, 2024 18:57

    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
    ------------------------------



  • 6.  RE: TMF 678 CustomerBill - Applied Customer Billing Rate

    Posted Mar 12, 2024 04:41

    Hi Avinash,

    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.

    Kind regards,

    Radu



    ------------------------------
    Radu Viorel Cosnita
    TO BE VERIFIED
    ------------------------------



  • 7.  RE: TMF 678 CustomerBill - Applied Customer Billing Rate

    TM Forum Member
    Posted Mar 11, 2024 19:25

    Hi Jonathan,

    Thanks for your replay.

    We were thinking of two options and feels like option 1 is the right way.

    Option 1: Extend customerBill resource to include "items" defining the charges at a summary level and holds the association with one or many appliedCustomerBillingRate resource. This is purely used for bill presentment. And appliedCustomerBillingRate can be further queried to get a detailed view of the charges and also for calculating customer balance, reporting to general ledger and other finance systems, being the focus of bill disputes, and more ( As you have mentioned).

    Option 2: We were thinking if we could establish parent child relationship using entityRelationship schema on base type appliedCustomerBillingRate



    ------------------------------
    Avinash Kenkere
    ------------------------------



  • 8.  RE: TMF 678 CustomerBill - Applied Customer Billing Rate

    TM Forum Member
    Posted Mar 12, 2024 19:17

    Thanks Radu

    Yes. It helps.



    ------------------------------
    Avinash Kenkere
    ------------------------------