Open APIs

 View Only
  • 1.  TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 08, 2025 06:40
    Edited by Jiri Smekal Dec 08, 2025 09:05

    Hi all,

    we are implementing TMFC009 Service Qualification Management with TMF645 v5 (focusing on CheckServiceQualification) together with TMFC002 Service Order Capture and Validation (POCV) and TMF641 Service Order.

    In TMF641, each ServiceOrderItem has an action attribute (add / modify / delete / noChange), which clearly expresses what kind of change is requested for the given service.

    In TMF645 v5, the ServiceQualificationItem has no such attribute. Are actually the modification / cease use cases in scope? My understanding is, they are. User Guide explicitly lists the following Check use case:

    "Check if we can upgrade the download speed of an existing and active service from 100 Mb/s to 600 Mb/s."

    If an action attribute is missing, the SQM component would presumably have to:

    • compare the state of the existing service in the Service Inventory (TMF638) with the requested service in TMF645,
    • detect the differences,
    • and derive the client's intended change (add vs modify vs cease vs nothing – such services may be needed for reference) from those differences.

    From the POCV perspective, the product order usually already contains information whether this is a new product or a modification of an existing one, so this could naturally be carried into the product → CFS decomposition and further into the TMF645 call.

    Overall, we see TMF645 as very similar in spirit to TMF641:
    The client has to decompose products into CFS services before calling both APIs, and ideally this decomposition and the way the requested change is expressed could be aligned.

    My questions are:

    • Is the absence of an action-like attribute in TMF645 intentional by design?
    • If modification / cease use cases are in scope, what is the recommended pattern to convey this kind of requested change in the TMF645 payload?
    • A custom TMF645 API extension adding an action attribute to ServiceQualificationItem seems less harmful and more feasible than introducing item nesting (as described in my other post). For the "add" action, the API would remain fully compliant with the standard, and this is very likely its main use case.

    Thanks a lot for any clarification or guidance and experiences.



    ------------------------------
    Jiri Smekal
    T-Mobile Czech & Slovak Telekom, a.s.
    ------------------------------



  • 2.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 09, 2025 05:16
    Hi Jiri,
     
    This is a very relevant question - I've been analysing how different TMF APIs express "change intent," and I noticed the same asymmetry you mentioned.
     
    From my observation:
     
    TMF641 expresses intent explicitly through ServiceOrderItem.action (add / modify / delete / noChange).
     
    TMF645 keeps intent implicit, expecting the SQM function to infer the requested change by comparing the incoming configuration with what already exists in Service Inventory (TMF638).
     
     
    This implicit approach works, but it introduces a few practical challenges:
     
    Inventory may not fully reflect in-flight updates, so inferring intent from snapshots can become unpredictable.
     
    Different systems may implement the "diff logic" differently, which can lead to inconsistent interpretations for the same upgrade / modify scenario.
     
    Without an explicit indicator, an SQM implementation has to guess whether the request is an addition, modification, cease, or reference-only - and guessing always introduces ambiguity.
     
     
    For this reason, I've seen some implementations add a lightweight extension on TMF645 - a small metadata field that carries high-level change intent. This keeps the standard intact, but removes ambiguity and avoids extensive diff-logic inside the SQM component.
     
    My understanding is:
     
    The absence of an action attribute in TMF645 seems intentional, as the API is defined more as a capability/feasibility check rather than an order-semantic API.
     
    But in practical deployments, explicitly carrying the intent (even as an extension) makes the behaviour much more predictable across 641 and 645.
     
     
    Would be great to hear how others are addressing this alignment.
     
    Best regards.
    Furooshin


    ------------------------------
    Furooshin Firoz
    TO BE VERIFIED
    ------------------------------



  • 3.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 09, 2025 06:55

    Hi,

    I didn't think TMF645 keep intent implicit. I thought it just doesn't care.

    Its job (assuming POST Check) is just to tell you if SSpec A is technically activable (for instance at the customer's location).

    Would you mind to share examples where intent/action would influence how SQM computation perform?

    I also would not infer behaviour from these 2 APIs, 641 and 645. They are very different.



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

    Matthieu Hattab
    Digital Sales, Core Commerce Domain Architect
    Ex-Lyse Tele, Open to Work
    ------------------------------



  • 4.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 09, 2025 07:24
    Hi Matthieu,
     
    Thank you for the clarification - and I fully agree that TMF645 is intentionally positioned as a capability/feasibility check, without carrying order semantics.
     
    The nuance I was trying to explore is slightly different:
     
    In certain real-world scenarios, feasibility can vary depending on the type of change being requested, even when the same ServiceSpecification is checked.
     
    A simple example to illustrate what I meant:
     
    A customer currently has an active 100 Mbps service.
     
    The client initiates a check for 600 Mbps at the same location.
     
     
    If the client's intention is interpreted as:
     
    (A) an upgrade of the existing service
    then SQM typically needs to consider aspects such as reuse of the current access, compatibility of the existing line profile, in-flight modifications, and migration rules.
     
    Whereas if the same request is interpreted as:
     
    (B) provisioning a new, second 600 Mbps service,
    SQM evaluates resource availability and feasibility in a very different way.
     
    In both cases the SSpec and the check location are identical - yet the feasibility path differs because the context of the requested change differs.
     
    My only point was that, in implementations where modify / cease / upgrade scenarios are common, SQM may need to infer this context from Inventory snapshots, which are not always perfectly aligned with in-flight states.
     
    I completely acknowledge that this is outside the formal scope of TMF645 - but some teams address this ambiguity with a small, non-intrusive metadata field indicating high-level intent, while keeping the API fully compliant.
     
    Would be very interested in your view on whether this type of scenario is usually handled inside SQM, or delegated entirely to orchestration/POCV before making a TMF645 call.
     
    Best regards,
    Furooshin


    ------------------------------
    Furooshin Firoz
    TO BE VERIFIED
    ------------------------------



  • 5.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 09, 2025 08:52

    In our case, it's POCV that will do these validation.

    it will have a workflow to go through validations and one of them is to orchestrate TMF645 to check if it's technically feasible to activate 600 mbps at this specific fiber termination point (place id). Checking if there is already an active customer, if it's an upgrade, a move it's for POCV to do all all the validations, technical, commercial, planning etc. I would rather not delegate some of them to SQM.

    in our implementation, we have a small homemade POCV responsible for orchestrating eligibility services. We do use a "action code" to "help" POCV make the right decisions. POCV is like the "conductor" in an orchestra  and it decides which musician (API) is needed, what notes it will play (API POST request) and when it is needed.

    But I would not think adding this action code in TMF645 would be useful.

    example: If customer is already on 500 mbps POCV will not call 645 to check if customer can have 600 Mbps because we already know it does. 



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

    Matthieu Hattab
    Digital Sales, Core Commerce Domain Architect
    Ex-Lyse Tele, Open to Work
    ------------------------------



  • 6.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 09, 2025 09:23
    Hi Matthieu,
     
    Thank you for the clarification - that makes perfect sense.
     
    Your explanation of how POCV orchestrates the full validation flow (technical, commercial, planning, upgrade checks, etc.) is very helpful. The analogy of POCV acting as the "conductor" provides a clear picture of why the intent logic naturally belongs there rather than inside TMF645.
     
    The example you gave (avoiding a 645 call when the upgrade path is already known) also highlights the practical benefit of keeping 645 focused strictly on technical feasibility.
     
    This perspective answers my question - much appreciated.
    Thank you for taking the time to explain your implementation approach.
     
    Best regards,
    Furooshin


    ------------------------------
    Furooshin Firoz
    TO BE VERIFIED
    ------------------------------



  • 7.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 10, 2025 06:45
    Edited by Jan Brnka Dec 10, 2025 06:45

    Hello everyone.

    I do understand the role of POCV - it is focused on capturing the product order request and validating it (technical, commercial, planning checks). My assumption is that once POCV has completed its work, the control is handed over to TMFC003 Product Order Delivery Orchestration and Management (PODO), which then interprets the intent (new service, upgrade, cease) and orchestrates the delivery, including decomposition into service orders.

    I just want to ask and confirm that I understand correctly:

    • The orchestrator responsible for creating the service order (API TMF641) is the PODO component.

    • And this means that the mechanism for decomposing the product specification into CFS services is indeed part of this component.



    ------------------------------
    Jan Brnka
    T-Mobile Czech & Slovak Telekom, a.s.
    ------------------------------



  • 8.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 10, 2025 07:55

    @Jan Brnka,

    Your assumption is also mine.

    Regarding your last point ("decomposing the product specification into CFS services"), this function must also exists in any application that consumes TMF645. 

    Such service could be POCV, Product Configurator or a custom orchestration service to manage anything related to qualification



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

    Matthieu Hattab
    Digital Sales, Core Commerce Domain Architect
    Ex-Lyse Tele, Open to Work
    ------------------------------



  • 9.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted Dec 11, 2025 02:56

    The documention of TMF645 does leave many open questions that should be clarified in the description.

    The description below is my interpretation as used in real-life implementations.

    The queryServiceQualification is used pre-order to determine what services can be offered based on the search criteria.

    The checkServiceQualification is used a semantic validation step as part of the service Order orchestration.

    The service in the serviceQualificationItem uses the ServiceRefOrValue. This is used differently depending on the intended orderItem.action.

    In case of "add" only properties other than id, href are to be used in the search criteria.

    In case of "modify" id and /or href should be provided

    In case of "delete" or "no_change" no serviceQualification is required

    This worked for us, it hopes it helps you to.

    Regards



    ------------------------------
    Koen Peeters
    Ciminko SA
    ------------------------------



  • 10.  RE: TMF645 v5 (Preview) – action for ServiceQualificationItems?

    Posted 29 days ago
    Edited by Matthieu Hattab 29 days ago

    both check and query can work in pre-sales.

    Using Query is a little more work for the TMF645 client.

    client has to build the search criteria and make the POST query....

    TMF645 just return a list of possible servicespec at the place (as per search criteria and other input)

    TMF645 does not return a qualification status

    client still has to find what product offers would match these available ServiceSpec.

    Using Check, the client knows that customer wants to buy a broaband service (intent captured from sales channel)

    The client determines the broaband Sspec (PO->PS->SS), send the broadband service spec and we get a response 

    TMF645 does return a qualification status for each item in the request

    then client filters the POs based on what's technically possible.

    if a PO is not possible, we can also tell customer why (based on the ineligibility message returned by 645)

    I have a little preference for CHECK because the business rule are computed  by TMF645's component and not by the client.

    TMF645 is fully responsible for telling me if I'm eligible to buy this sspec and if not, why? and are there any alternative? only CHECK can do that, I believe.

    It is also the recommended approach by TM Forum (see TMFS003: Browse B2C Catalogue and Check Fiber Technical Eligibility)



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

    Matthieu Hattab
    Digital Sales, Core Commerce Domain Architect
    Ex-Lyse Tele, Open to Work
    ------------------------------