Open APIs

 View Only
Expand all | Collapse all

How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

  • 1.  How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 21 days ago

    On Product Offering Qualification resource we have to fill on the request a "productOffering, or productSpec, or productCategory "(at least one is mandatory)" . In my case I need to check if I am eligible to transfer money from my balance to one or more numbers, where I can specify the (operation of transfer )on the request ? could be considered as a "productCategory" ?



    ------------------------------
    Imene Tekaya
    Sofrecom Tunisie
    ------------------------------


  • 2.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 20 days ago

    Hi,

    A "product category" is a product catalogue entity that groups product offerings with a strong affinity. For instances, "routeurs" or "phone accessories".

    TMFC0027 does not qualify the  "product category" resource but the product offerings that exist in that category.

    I did a retail project once, where we had "credits" with specialisation in various types of credits generated by various processes (loyalty points, gift cards, returned products, compensation etc). The various credits could be used by customer to pay for their orders. but not all credits were usable to pay for the order. some products could not be paid with credits, the order needed a Minimum order value and many other rules.
    I modelled the different types of credits as product offerings (but never sellable). The credit amount was stored as a  characteristic value. Then we could use our eligibility and compatibility rule engine to check if customer is eligible to use these credits.

    Using TMF679 for your use case is therefore very possible.

    Remember that TMF API use polymorphism so you can define new types of entities with the attribute @Type.



    ------------------------------
    Kind regards,

    Matthieu Hattab
    Lyse Tele AS
    ------------------------------



  • 3.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 20 days ago
    Edited by Yurii Yushchak 20 days ago

    Hi Imene,

    The TMF654 states that Transfer Balance is a service. Therefore, Transfer Balance should be configured as a service. And then, the TMF645 Service Qualification Management API should be used to check the technical eligibility of the configured service.



    ------------------------------
    Yurii Yushchak
    System Manager
    Ericsson Inc.
    ------------------------------



  • 4.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 19 days ago

    Thank you for your reply. For budgetary reasons on the client side, I proposed aligning the TMF679 as explained by Matthieu. I used ProductOffering to point to the "Balance Transfer" service in the catalog and the associated values in prodSpecCharValueUse. However, the client must be able to add this offer (which is not sellable) to their catalog in order to perform the eligibility calculation.



    ------------------------------
    Imene Tekaya
    Sofrecom Tunisie
    ------------------------------



  • 5.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 18 days ago
    Edited by Matthieu Hattab 18 days ago

    Imene,

    It's not necessary to add your "balance" product offering in the product catalogue. It has little benefit (unless the catalogue also contains the business rule statement or a reference to a business rule id managed elsewhere).

    If the customer has a balance, you can make a POST request to 679 API, specifically:
    POST /checkProductOfferingQualification
    and you put your "balance" product offering id in the request message, specifically under:

    "checkProductOfferingQualificationItem": []

    There is an attribute "Action" that you can use to instruct the POQ service what the customer wants to do with it.

    for instance, the action could be "transfer".



    ------------------------------
    Kind regards,

    Matthieu Hattab
    Lyse Tele AS
    ------------------------------



  • 6.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 14 days ago

    Hello

    Thank you all for the explanation.

    @Matthieu,  yes the customer has a balance, and a prepay balance API will be used to perform the "transfer" task.

    However,  if we don't need to add the "transfer balance" as an offer in the catalog, how can we obtain the product offering ID? 

    Below is a JSON example that I propose: 

    POST /checkProductOfferingQualification

    {
        "channel": {
          "id": "1",
          "name": "maxit"
        },
        "checkProductOfferingQualificationItem": [
          {
            "product": {
              "realizingResource": [
                {
                  "id": "01020304056",
                  "@type": "Msisdn"
                }
              ]
            },
            "productOffering": {
              "id": "TC01",     // if we don't have this in the catalog how to get it ?
              "name": "balance transfer"
            },
            "action": "transfer"
          }
        ],
        "provideAlternative": false,
        "provideResultReason": true,
        "requestedQualificationCompletionDate": "2021-09-01T14:21:03.354Z"
      }

    /////////////////////////////////////
    200
    {
        "id": "99",
        "channel": {
          "id": "1",
          "name": "maxit"
        },
        "checkProductOfferingQualificationItem": [
          {
            "eligibilityResultReason": [
              {
                "@type": "EligibilityResultReason",
                "label": "The receiver's MSISDN is not eligible for the transfer",
                "code": "TE45A"
              }
            ],
            "product": {
              "realizingResource": [
                {
                  "id": "01020304056",
                  "@type": "Msisdn"
                }
              ]
            },
            "productOffering": {
              "id": "TC01",
              "name": "balance transfer"
            },
            "action": "transfer",
            "qualificationItemResult": "red",
            "state": "done"
          }
        ],
        "provideAlternative": false,
        "provideResultReason": true,
        "state": "done"
      }


    ------------------------------
    Imene Tekaya
    Sofrecom Tunisie
    ------------------------------



  • 7.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 18 days ago

    Yurri,

    the term "service" has multiple meanings. In this case, you cannot consider the "transfer balance" a service in the same sense that TMF645 interprets "service"

    in TMF645, the "service" represents the customerFacingServiceSpec that TMF645 uses to validate the technical feasibility of a customerFacingServiceSpec:
    for instance: Product has a 2500 Mbps FibercustomerFacingServiceSpec (service) and TMF645 will check if the Customer Premise Equipment and  Service Delivery Point and the fiber line and etc are capable of delivering 2500 Mbps.
    This will not help with transfer balance.
    But if you have a implementation to suggest (maybe using the API's polymorphism), please share.



    ------------------------------
    Kind regards,

    Matthieu Hattab
    Lyse Tele AS
    ------------------------------



  • 8.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 15 days ago

    Hi Matthieu,

    You are absolutely right about the term "service". My concern with using the TMF679 is that the TMF679 Product Offering Qualification API goal is to provide Product Offering commercial eligibility. So, the question is, is "Transfer Balance" modeled as a product? If yes - that Okay to use TMF679 for this. If not - and I've assumed this to be the case because in my experience I've never seen that operators model "Transfer Balance" as a separate product, but always as an additional service - In this case, the use of TMF679 is not advisable.

    Now let's get back to the TMF vision of "Transfer Balance". First of all, TMF654 defines the TransferBalance resource "The TransferBalance resource is a detailed description of credit transfer operation requested between two buckets (reference to products owned by customers and consuming credit when using a service)". According to TMFS009 Usage and Balance Management "The Service Balance Management component is placed in the Production block as it does the service control towards the network. With this in mind the actions on the UsageVolumeBalance should be performed on Service level (CFS)." So, as I understand, any action on a balance should be done on Service level and these actions can be performed via TMF654 Prepay Balance Management API (Note: JIra ticket raised already to rename the API to remove Prepay). And if it is Service level, then, as for me, better to use TMF645 Service Qualification Management API for the checkServiceQualification "Transfer Balance" if we can transfer balance.



    ------------------------------
    Yurii Yushchak
    System Manager
    Ericsson Inc.
    ------------------------------



  • 9.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 15 days ago

    TMF679 does not only provide Product Offering commercial eligibility, it serves multiple purposes.

    One example is dynamic pricing computation, and another is product listing.

    On the Topic of Qualification

    The TMFC027 component (which exposes TMF679) can qualify three types of products:

    1. Product Offering (as you pointed out)
    2. Product (an instance of the Product Offering in the product inventory)
    3. Promotion

    Checking the eligibility of a transfer balance should indeed not be done via TMF679. However, in the absence of a proper API, you could use TMF679 as a workaround.

    Why TMF645 is Not a Viable Solution

    In my opinion, TMF645 is not a feasible option.

    The TMFC009 component (which exposes TMF645) is responsible for verifying and validating service availability based on specified and configured business rules. It must:

    • Identify at least one technical solution (RFSspec) available to deliver the service (CFSspec).
    • Check the availability of all resource types involved in this technical solution.

    It is very unlikely that this component has access to the necessary data to compute transfer balance business rules.

    it's important not to confuse the word "service".

    In hindsight, we should probably have guided the OP toward using the TMF723, Policy API, which is more generic and better suited for broader business scenarios.



    ------------------------------
    Kind regards,

    Matthieu Hattab
    Lyse Tele AS
    ------------------------------



  • 10.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 14 days ago

    Hi Matthieu,

    Of course, if we're talking about the eligibility of "Transfer Balance" as a whole as a service for a particular customer, we should use the TMF679 Product Offering Qualification API. In other words, if a customer wants to check if they have the "Transfer Balance" service, we definitely need to use TMF679. But the initial question from @Imene Tekaya was "I need to check if I am eligible to transfer money from my balance to one or more numbers". And I understand this question as a more precise action than just checking eligibility for the service. In this case, we need to check whether this target number exists; whether it is in the appropriate state, not in Suspended, Blocked, Quarantined, etc.; whether the target number has been ported-out to another operator; whether the usage type of the source balance must match the usage type of the target balance, etc. Here, the target number is analogous to the address in the case of a shipment. How TMF679 can be used there? TMF679 works with a Product Inventory only. But Balance Items are associated with CFS's in a Service Inventory. Therefore, I suggested using the TMF645 Service Qualification Management API, which is a relevant API for this purpose.



    ------------------------------
    Yurii Yushchak
    System Manager
    Ericsson Inc.
    ------------------------------



  • 11.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 14 days ago

    Hi Yurii

    Pierre has rejected the proposal to rename TMF654 Prepay Balance Management to just "Balance Management" because Sylvie is currently working on enhancements to SID in relation to the Service Balance Management component (ODA-C) and the separation of concerns between CCM and PROD.  This is likely to result in a new API instead of TMF654.  Like you say though, the balance management will occur at the service domain.



    ------------------------------
    Dan d'Albuquerque
    Entronica Company Limited
    ------------------------------



  • 12.  RE: How to categorize a "balance transfer" on TMF679 Product Offering Qualification Management API v4?

    TM Forum Member
    Posted 14 days ago
    Edited by Yurii Yushchak 14 days ago

    Hi Dan,

    Thank you for the updates!

    I don't have access to Jira and saw the information that JIra ticket was raised in TMFS009 Usage and Balance Management. I think the note about Jira ticket needs to be removed from there.



    ------------------------------
    Yurii Yushchak
    System Manager
    Ericsson Inc.
    ------------------------------