Open APIs

 View Only
  • 1.  Creating a Quote without Quote Items

    Posted Nov 20, 2025 11:06

    Hello everyone,

    In our end-to-end quoting process, we would like to capture the moment when a sales representative starts creating a quote - i.e., to persist the quote metadata such as owner, creation date, and initial state (draft).

    However, according to the TMF648 specification, the quoteItem array is mandatory in the Quote_Create schema. This means it's not possible to create a quote record without at least one quote item.

    We're wondering:

    • What are the business or design reasons behind requiring at least one quoteItem when creating a Quote?

    • Has anyone faced a similar use case where you needed to create a draft quote (e.g., before any product lines are added)?

    • If so, how did you approach this requirement - did you extend the API, use a custom status, or handle it outside the TMF648 model?

    Thanks in advance for any insights or experience you can share!



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


  • 2.  RE: Creating a Quote without Quote Items

    Posted Nov 21, 2025 05:45
    Edited by Matthieu Hattab Nov 21, 2025 06:57

    Hi,

    I checked the OAS v5 and found no Quote_Create schema, but the minItems: 1 requirement for quoteItem appears both in the base Quote schema and in Quote_FVO used for POST.

    This is surprising and may be an oversight from TM Forum. In real telecom systems, carts, quotes and orders can always be created empty because:

    • The header holds the customer, channel and context.

    • Items are added only after selecting offerings.

    • Users often remove all items and restart during negotiation, without creating a new quote.

    Has anyone faced a similar use case where you needed to create a draft quote (e.g., before any product lines are added)?

    I would assume all of us!

    In my experience, requiring at least one item is fine only if tied to the state model. For example: allow empty quote in Draft, then enforce business rules when moving to later states. This mirrors real-world behaviour far better than a blanket rule that "a quote must always contain at least one item", which is very user-unfriendly, btw.

    If you need this flexibility, a practical solution is to customise your OAS and relax this constraint.

    PS: the requirement is also inconsistent: Shopping Cart does not requires items, Product Order does.



    ------------------------------

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


    ------------------------------



  • 3.  RE: Creating a Quote without Quote Items

    Posted Nov 24, 2025 03:45

    Thank you, Matthieu, for your answer.

    Could you clarify what the formal process is within TM Forum for proposing a change/correction to the API specification (e.g., relaxing the minItems constraint in the Quote schema)? Is this handled through a formal change request, contribution to the OAS, or another channel?

    And if there is a way I can support this, I'd be glad to contribute.



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



  • 4.  RE: Creating a Quote without Quote Items

    Posted Nov 24, 2025 03:54

    I have no idea how this works. It's usually difficult to contact the API team. I've made several requests to correct OAS files or improve them by sending email to the owner of the API or the API projects but never got response. I wish there would be a formal process with a website where we can make request and interact with the API owner.



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

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



  • 5.  RE: Creating a Quote without Quote Items

    Posted Nov 24, 2025 05:18

    Thank you for sharing this-we appreciate the feedback and will use it to improve the process. For now, there is a formal path: please submit your requests (OAS corrections or enhancements) in our Jira project dedicated to API evolution. This allows us to track, discuss, and prioritize items with the API owner, and you'll receive updates directly in Jira.

    If you need the link or access, just let me know and I'll share it.



    ------------------------------
    Amani DKHIL
    Orange Group
    ------------------------------



  • 6.  RE: Creating a Quote without Quote Items

    Posted Nov 24, 2025 05:18

    Hi Jan,

    The TMF648 Quote API is primarily intended to generate a quote from a set of ProductOffering, which is why quoteItems are mandatory-issuing a quote without pricing at least one target product is not supported. This ensures the quote is complete and accurate, delivering a clear estimate to the customer.

    Other APIs, such as TMF699, can be used to track sales opportunities. In that case, you are simply capturing the prospect's intent until they clearly signal a willingness to purchase or request a quotation, which can then evolve into a ProductOrder or a Quote.

    Best Regards,



    ------------------------------
    Amani Dkhil
    Sofrecom Tunisie
    ------------------------------



  • 7.  RE: Creating a Quote without Quote Items

    Posted Nov 24, 2025 05:32

    @Amani Dkhil

    We understand that a customer should not receive a quote without any product, but this is no the issue here. 

    it's with the API OAS definition. It requires items at quote creation. We believe that this is wrong.

    A quote should allow any quote item, including none, allowing the sales team to easily add, empty, remove items while discussing the needs with customers.

    Quote Items should only be required at the time the quote is submitted to the customer (so the rule should be state-model dependent).



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

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



  • 8.  RE: Creating a Quote without Quote Items

    Posted Nov 24, 2025 05:18

    The TMF648 Quote API is primarily intended to generate a quote from a set of ProductOffering, which is why quoteItems are mandatory-issuing a quote without pricing at least one target product is not supported on the v4 & v5. 

    Other APIs, such as TMF699, can be used to track sales opportunities. In that case, you are simply capturing the prospect's intent until they clearly signal a willingness to purchase or request a quotation, which can then evolve into a ProductOrder or a Quote.



    ------------------------------
    Amani Dkhil
    Sofrecom Tunisie
    ------------------------------



  • 9.  RE: Creating a Quote without Quote Items

    Posted Nov 24, 2025 05:18

    The TMF648 Quote API is primarily intended to generate a quote from a set of ProductOffering, which is why quoteItems are mandatory-issuing a quote without pricing at least one target product is not supported on the current versions. 

    Other APIs, such as TMF699, can be used to track sales opportunities. In that case, you are simply capturing the prospect's intent until they clearly signal a willingness to purchase or request a quotation, which can then evolve into a ProductOrder or a Quote.



    ------------------------------
    Amani Dkhil
    Sofrecom Tunisie
    ------------------------------



  • 10.  RE: Creating a Quote without Quote Items

    Posted Nov 26, 2025 03:32

    In our case, the opportunity has already been created. It captures the customer's basic need in the form of product offerings, but without much detail at this stage. From there, the sales representative begins to create the quote, configuring parameters such as the access technology or bandwidth for the connection, and applying prices based on the product catalog.

    So the opportunity effectively serves as the input into this process: it represents the handover of the customer context, including the service address, which is then used for service qualification. At this point, the quote is still in a draft state, evolving from the opportunity into a more detailed commercial proposal.

    This is why I see value in being able to persist a quote record even before any quote items are added. It allows us to capture the metadata (owner, creation date, draft status) and link it to the opportunity, while the detailed configuration of product lines and pricing follows later in the workflow.



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