Open APIs

Expand all | Collapse all

Balance Management using TMF666 and TMF654

  • 1.  Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted May 22, 2021 11:55
    Edited by Ben Eng May 22, 2021 11:56
    I'm trying to understand how balances are updated as charges are posted or payments are posted to an account. Looking at Account Balance in TMF666, it only defines PATCH methods for updating, but accountBalance is explicitly not patchable. There are no PUT methods, and there are no task resources to update accountBalance atomically. Meanwhile, TMF654 defines a comprehensible set of task resources for updating balances, but the API name suggests it is intended for prepay balance management to the exclusion of postpay services.

    This raises two questions.

    (1) Is TMF654 used for both prepay and postpay services to update balances?

    (2) Is there an implicit relationship between TMF654 and the Account Balance on the accounts in TMF666, so that as the task resources on TMF654 are posted, the account balances on the accounts are updated implicitly?

    Moreover, TMF666 appears to lack some precision in how Account Balance is depicted in examples. The Account Balance sub-resource is described as having an amount of type Money. However, the examples all show account as having a numeric value without a currency. I suspect the intent is for Account Balance to be a structure that handles monetary amounts similar to TMF654, but the document needs some edits to make it more consistent. Is that the right way to think of it?

    ------------------------------
    Ben Eng
    Oracle Corporation
    ------------------------------


  • 2.  RE: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted May 22, 2021 14:41
    Hi Ben
    To the best of my knowledge, and subject to correction by other community members, the balances on account in TMF666 are post-paid, as distinct from the prepaid buckets in TMF654.
    We have an open JIRA about the non-patchability of balance in TMF666, hopefully that will be corrected sometime.
    Our tooling for generating API user guides (specs) includes the possibility of validating the examples against the schema. If applied properly this should ensure that the examples will be correct and that balances should include the amount and the units of measure (currency).
    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: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted May 24, 2021 03:59
    The accountBalance is a complex attribute, in my view it is a computed/deduced attribute.

    Let me try to explain what I mean by that.
    • Credits / Debits on an account impact the account balance.
      • Debits are a result of Charge / Fees / Reversals or anything that were part of the CustomerBill.
      • The Credit are a result of Payment, Manual Credits, Discounts etc. These are part of Payment subdomain.
    • we should have one of the two editable (Credits & Debits) OR Balance and not BOTH
      • Credits / Debits are editable under TMF 678 and 666
      • balance can be deduced from that and need not be updated directly. If we edit balance directly it will not reconcile with the credits / debits associated with that billing account as they cannot be compute back in a reverse way.
      Therefore, I think we should not make accountBalance editable directly from the API level.

      I agree we currently do not have a financial services domain where all of these capabilities need to be enabled from, we need to work on developing such an domain in TMF. With that balance will become editable by not editing it directly but by registering/submitting a new debit or a credit towards an financial account. Thus balance will get updated but by deducing the financial impact of a debit or a credit rather than a direct edit.

    ------------------------------
    -----------------------------------------------------
    Nitin Patil
    Portfolio Architect BSS + B2B
    Amdocs India 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
    -----------------------------------------------------
    ------------------------------



  • 4.  RE: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted May 24, 2021 07:21
    Hi Nitin

    I agree that accountBalance should be a computed/derived value and is intended to give a high level view of user's balances. While the examples provided in the spec seem to suggest that it is relevant for Postpaid, I think the same can also be used to show Prepaid balances as well. Can you please clarify the reference to TMF 678 though? Which operations in 678 enable editing credits/debits?

    @Jonathan Goldberg
    My observation is that though TMF 654 says 'Prepaid', the concepts seem to apply for Postpaid as well. For eg. a 5 GB prepaid data grant and a 5GB data usage quota in a Postpaid pack, they would both be handled via buckets as in both the cases, we need to continuously check if the balance/quota is depleted yet or not. The implementations could be different but the concepts would be same. If not via TMF 654, is there another API which could provide guidance on how the Postpaid services should be modeled?
    Hope I'm making sense.

    ------------------------------
    Mukesh Kumar
    Oracle Corporation
    ------------------------------



  • 5.  RE: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted May 24, 2021 08:10
    Hi Mukesh,

                  In AppliedCustomerBillingRate of any appliedBillingRateType (appliedBillingCharge, appliedBillingCredit, appliedPenaltyCharge) are the capturing the Credits and Debits. They are all part of a CustomerBill which is associated with a BillingAccount.

    thanks,

    Nitin Patil

    ------------------------------
    -----------------------------------------------------
    Nitin Patil
    Portfolio Architect BSS + B2B
    Amdocs India 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
    -----------------------------------------------------
    ------------------------------



  • 6.  RE: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted May 25, 2021 03:50
    Thanks for the response. In the spec, there are only GET operations support for appliedBillingRateType resource. Can you please confirm if I'm missing something?
    Regards
    Mukesh

    ------------------------------
    Mukesh Kumar
    Oracle Corporation
    ------------------------------



  • 7.  RE: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted May 25, 2021 08:30
    Hi Mukesh,

                The AppliedCustomerBillingRate gets created by the billing system based on the order and pricing information.  As you already stated there is only GET API for it in the TMF model, these are computed resources and are computed by the billing system based on order information and price information.

    ------------------------------
    -----------------------------------------------------
    Nitin Patil
    Portfolio Architect BSS + B2B
    Amdocs India 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
    -----------------------------------------------------
    ------------------------------



  • 8.  RE: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted Jun 22, 2021 09:10
    Hi @Jonathan Goldberg

    It seems that TMF678 talks about prepaid real-time bill as well. I am assuming that there is no difference between a postpaid or a prepaid real-time bill. The account balance for both of them will/should be derived based on user's current and active usages for that billing cycle. For example, the the accountBalance for a prepaid customer should be derived after deducting the balance which has already been consumed by any previous usages as well as the balances reserved or consumed by any ongoing usage.

    If that is the case then it brings us back to the original question posted by @Ben Eng i.e. Is TMF654 applicable for both prepaid and postpaid balances ? ​

    Thanks
    Shashidhar

    ------------------------------
    Shashidhar Misra
    Oracle Corporation
    ------------------------------



  • 9.  RE: Balance Management using TMF666 and TMF654

    TM Forum Member
    Posted Jun 22, 2021 09:11
    Hi @Jonathan Goldberg

    TMF666 also talks about ​prepaid real-time bill as well. I am assuming that there will not be any difference between a prepaid or a postpaid real-time bill. Both the bills should derive the accountBalance of that user after considering the current and active usages for that billing cycle. If that is the case then the current balance of a prepaid account should be derived after deducting the balances for the usages which the user has already done as well as the balances reserved for any ongoing session. This brings us back to the orignal question posted by @Ben Eng i.e. Is TMF654 applicable for both prepaid and postpaid balances ? ​

    ------------------------------
    Shashidhar Misra
    Oracle Corporation
    ------------------------------