cXML QuoteMessage / QuoteRequest
B2B request-for-quote flow. The QuoteRequest is issued by the buyer
to candidate suppliers; the QuoteMessage is the price proposal each
supplier returns — potentially several times if the negotiation or auction
extends.
Purpose
The QuoteRequest/QuoteMessage pair models a tender: the
buyer publishes a need (volumes, dates, specs) and one or more suppliers reply
with their price-and-lead-time proposals. The type attribute on
QuoteMessageHeader is #REQUIRED and takes five values:
accept (accept the latest proposal), reject,
update (new proposal during negotiation), final (final
proposal once the event closes), award (buyer awards the contract
to this supplier).
The quoteReceivingPreference attribute on
QuoteRequestHeader controls when the buyer wants to receive
QuoteMessage entries from the sourcing system:
winningOnly, finalBidsFromAll, or all (as
bids come in).
XML structure
QuoteRequest
The DTD: QuoteRequest (QuoteRequestHeader, QuoteItemOut*).
QuoteRequestHeader content: (Name?, SupplierSelector?,
Total?, Description?, ShipTo?, Contact*, Comments?, QuoteHeaderInfo?,
Extrinsic*, QuoteRequestHeaderIndustry?). No element required by
cardinality.
#REQUIRED attributes: requestID,
requestDate, openDate, closeDate,
currency, xml:lang. So every RFQ has a mandatory time
window and a fixed language+currency.
QuoteMessage
The DTD: QuoteMessage (QuoteMessageHeader, QuoteItemIn*).
QuoteMessageHeader content: (OrganizationID, Total, ShipTo?,
Contact*, QuoteRequestReference?, Comments?, QuoteHeaderInfo?,
SupplierProductionFacilityRelations?, Extrinsic*). Two required elements:
OrganizationID (the bidding supplier's identity) and
Total (the proposed amount).
#REQUIRED attributes on QuoteMessageHeader:
type, quoteID, quoteDate,
currency, xml:lang.
QuoteItemIn
The DTD: QuoteItemIn (ItemID?, ItemDetail, ShipTo?, Shipping?, Tax?,
SpendDetail?, Total?, TermsOfDelivery?, ReferenceDocumentInfo*, Contact*,
Comments?, Alternative?, SupplierProductionFacilityRelations?,
Extrinsic*). Only ItemDetail is required by cardinality;
ItemID is optional but always present in practice.
Attributes: type #REQUIRED (same five values as
QuoteMessageHeader), quantity #REQUIRED,
lineNumber #IMPLIED, rank to position the
bid when multiple suppliers are compared.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="260510.100000.qreq@buyer.example"
timestamp="2026-05-10T10:00:00+00:00"
version="1.2.069">
<Header>
<From>
<Credential domain="DUNS"><Identity>123456789</Identity></Credential>
</From>
<To>
<Credential domain="DUNS"><Identity>987654321</Identity></Credential>
</To>
<Sender>
<Credential domain="DUNS">
<Identity>123456789</Identity>
<SharedSecret>shared-secret-here</SharedSecret>
</Credential>
<UserAgent>ediverse-sourcing/1.0</UserAgent>
</Sender>
</Header>
<Request>
<QuoteRequest>
<QuoteRequestHeader requestID="RFQ-2026-0017"
requestDate="2026-05-10T10:00:00+00:00"
type="new"
openDate="2026-05-10T10:00:00+00:00"
closeDate="2026-05-17T18:00:00+00:00"
currency="USD"
xml:lang="en">
<Name xml:lang="en">Office chair tender Q3 2026</Name>
<Description xml:lang="en">RFQ for 500 ergonomic chairs</Description>
</QuoteRequestHeader>
<QuoteItemOut quantity="500" lineNumber="1">
<ItemID>
<SupplierPartID>RFQ-LINE-1</SupplierPartID>
</ItemID>
<ItemDetail>
<UnitPrice><Money currency="USD">0.00</Money></UnitPrice>
<Description xml:lang="en">Ergonomic office chair with lumbar support</Description>
<UnitOfMeasure>EA</UnitOfMeasure>
<Classification domain="UNSPSC">56101504</Classification>
</ItemDetail>
</QuoteItemOut>
</QuoteRequest>
</Request>
</cXML> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="260515.140000.qmsg@supplier.example"
timestamp="2026-05-15T14:00:00+00:00"
version="1.2.069">
<Header>
<From>
<Credential domain="DUNS"><Identity>987654321</Identity></Credential>
</From>
<To>
<Credential domain="DUNS"><Identity>123456789</Identity></Credential>
</To>
<Sender>
<Credential domain="DUNS">
<Identity>987654321</Identity>
<SharedSecret>shared-secret-here</SharedSecret>
</Credential>
<UserAgent>supplier-sourcing/1.0</UserAgent>
</Sender>
</Header>
<Message>
<QuoteMessage>
<QuoteMessageHeader type="final"
quoteID="Q-2026-0042"
quoteDate="2026-05-15T14:00:00+00:00"
currency="USD"
xml:lang="en">
<OrganizationID>
<Credential domain="DUNS"><Identity>987654321</Identity></Credential>
</OrganizationID>
<Total>
<Money currency="USD">12500.00</Money>
</Total>
<QuoteRequestReference requestID="17" requestDate="2026-05-10T10:00:00+00:00">
<DocumentReference payloadID="260510.100000.qreq@buyer.example"/>
</QuoteRequestReference>
</QuoteMessageHeader>
<QuoteItemIn type="update" quantity="500" lineNumber="1">
<ItemID>
<SupplierPartID>SKU-A100</SupplierPartID>
</ItemID>
<ItemDetail>
<UnitPrice><Money currency="USD">25.00</Money></UnitPrice>
<Description xml:lang="en">Ergonomic chair, black — supplier proposal</Description>
<UnitOfMeasure>EA</UnitOfMeasure>
<Classification domain="UNSPSC">56101504</Classification>
<LeadTime>14</LeadTime>
</ItemDetail>
<Total>
<Money currency="USD">12500.00</Money>
</Total>
</QuoteItemIn>
</QuoteMessage>
</Message>
</cXML> Required vs optional
- QuoteRequestHeader — 6
#REQUIREDattributes:requestID,requestDate,openDate,closeDate,currency,xml:lang.typedefaults to"new". Content: zero element required by cardinality. - QuoteMessageHeader — 5
#REQUIREDattributes:type,quoteID,quoteDate,currency,xml:lang. Content:OrganizationIDandTotalrequired. - QuoteItemIn —
typeandquantityare#REQUIRED. Content:ItemDetailrequired.
Common patterns
Multi-round negotiation: each intermediate proposal is a
QuoteMessage type="update". The final proposal after closure is
type="final". The award (buyer's commitment) flows through a
QuoteMessage type="award" — this one emitted by the buyer.
Link back to the original RFQ: use
QuoteRequestReference with its DocumentReference. The
DTD also accepts redundant requestID/requestDate
attributes to enable standalone processing.
Variants / alternatives: a supplier can propose a different item
through the Alternative element inside QuoteItemIn.
Handy for substitute parts or next-generation models.
Documentation
- Quote.dtd — current version
— search for
ELEMENT QuoteRequest,QuoteMessage,QuoteRequestHeader,QuoteMessageHeader,QuoteItemIn. - cXML Reference Guide (PDF) — Quote / RFQ chapter, event types (forward auction, reverse auction, sealed bid).
- OrderRequest — the order issued once the deal is awarded.