Receive an order response
How to receive a purchase order response sent by the supplier
Tradecloud sends purchase order responses to buyers when order events are triggered.
Receiving methods
Choose your API method
You must choose between two methods to receive order responses:
Webhook API (Push): Tradecloud pushes order events to your system.
Polling API (Pull): Your system periodically checks for order updates.
For details on choosing between these methods:
Webhook versus pollingChoose your delivery format
You must also choose between two delivery formats:
Delivery schedule: Multiple scheduled deliveries per order line
Single delivery: One scheduled delivery per order line
For details on choosing between these formats:
Delivery scheduleIf you're using single delivery format, please see:
Single delivery order responseImplementation options
Using the webhook API
See the Webhook setup guide for instructions on how to configure the webhook API.
Use the POST order webhook endpoint.
The webhook body contains:
eventName: Contains the order event nameorderEvent: Contains the actual order eventmeta: The message meta information, see Message meta information
Using the polling API
See the Polling setup guide for instructions on how to configure polling.
Use the POST poll orders endpoint.
The polling response body contains:
data: Contains the actual orders in its current statetotal: The total no. of matching orders, regardless of paging.lastUpdatedAt: Store thelastUpdatedAtvalue to use aslastUpdatedAfterin subsequent requests.
Response structure
This section assumes you're using delivery schedules with either the orderEvent webhook API or the order polling API.
Order header
The order header contains:
id(inorder) ororderId(inorderEvent): Tradecloud order identifierbuyerOrder: the buyer part of the order, see Buyer ordersupplierOrder: the supplier part of the order, see Supplier orderindicators.deliveryOverdueis true when at least one order line is overdue.status.processStatus: is the aggregate of all lines Order process statuses.status.logisticsStatus: is the aggregate of all lines Order logistics statuses.version: the Tradecloud order version numbereventDates: some key order event date/timesmeta: meta information, including source and trace info, about this messsagelastUpdatedAt: is the latest date time the order has been changed, useful for polling orders.
Buyer order
buyerOrder is mostly an echo of your order fields as explained in Issue a new order
supplierAccountNumber: the supplier account number as known in your ERP system
Supplier order
supplierOrder contains the supplier order fields:
companyId: the supplier's Tradecloud company identifier.buyerAccountNumber: your account number as known in the supplier's ERP system.description: a free format additional description of this order by the supplier.contact: the supplier employee responsible for this order.properties: are key-value based custom fields, added by the supplier.notes: are simple custom fields, added by the supplier.documents: contain meta data and link of attached documents by the supplier.
Order status
The order status is the aggregation of all the lines statuses.
Order process status
Order logistics status
orderEvent or order lines
orderEvent or order lineslines contains one or more order lines:
id: the Tradecloud line identifierbuyerLine: the buyer part of the order line, see Buyer line.supplierLine: the supplier part of the order line, see Supplier line.confirmedLine: the order line as agreed between buyer and supplier, see Confirmed line.deliverySchedule: the current aggregated delivery schedule, see Delivery schedule.deliveryScheduleIncludingRequests: the current aggregated delivery schedule including requests, see Delivery schedule.prices: the current prices, see Prices below.pricesIncludingRequests: the current prices, including any open supplier or buyer requests, see Prices.indicators.deliveryOverdueis true when the order line is overdue.status.processStatus: the order line's Line process status.status.inProgressStatusthe order line's Line in progress status.status.logisticsStatus: the order line's Line logistics status.eventDates: some key line event date/timesmergedItemDetails: detailed part information provided by both buyer and supplier, see Item details.lastUpdatedAt: is the latest date time the order line has been changed, useful for polling.
Buyer line
lines.buyerLine is an echo of your order line fields as explained in Issue a new order
position: the line position within the purchase order
Supplier line
lines.supplierLine contains the supplier order line fields:
salesOrderNumber: the sales order number as known in the supplier's ERP systemsalesOrderPosition: the position within the supplier's sales orderdescription: a free format additional description of this line by the supplierrequests: the supplier can request different delivery schedule, prices and charge lines, see belowproperties: are key-value based custom fields, added by the suppliernotes: are simple custom fields, added by the supplierdocuments: contain meta data, objectId or url, of attached documents by the supplier.
Supplier requests
lines.supplierLine.requests.proposal: the supplier has proposed a different delivery schedule, prices and/or charge lines compared to the issued order line. lines.supplierLine.requests.reopenRequest: the supplier requests to reopen the confirmed order line. The supplier has requested a different delivery schedule, prices and/or charge lines compared to the confirmed order line.
deliverySchedule: the requested alternative delivery scheduleprices: the requested alternative priceschargeLines: the requested alternative charge lines, see Charge linesreason: the reason of this request given by the supplierstatus: the Request status.
Request status
If the request status is Open the other party must approve or reject it.
Confirmed line
lines.confirmedLine: the agreed order line between buyer and supplier.
Only if the process status is Confirmed the line is agreed between buyer and supplier
lines.confirmedLine.deliverySchedule: the agreed delivery schedulelines.confirmedLine.prices: the agreed priceslines.confirmedLine.chargeLines: the agreed charge lines, see Charge lines
Delivery schedule
When using order or orderEvent the delivery schedule is used.
lines.deliverySchedule: the current delivery schedule, either havingIssuedorConfirmedvalues.
The lines.deliverySchedule field does NOT include any open supplier or buyer request. Be aware that either the Issued or Confirmed values are returned, dependent on the line status.
lines.deliveryScheduleIncludingRequests: the current delivery schedule, either havingIssued,In ProgressorConfirmedvalues.
The lines.deliveryScheduleIncludingRequests field does include any open supplier or buyer request. Be aware that the Issued, proposal or reopen request or Confirmed values are returned, dependent on the line and request status.
Delivery schedule fields
lines.deliverySchedule[IncludingRequests].position: the optional position in the delivery schedule. Not to be confused with theline.positionlines.deliverySchedule[IncludingRequests].date: the delivery date of this delivery schedule position. Date has ISO 8601 dateyyyy-MM-ddformat. See also Standards.lines.deliverySchedule[IncludingRequests].quantity: the quantity of this delivery schedule position. Quantity has a decimal1234.56format with any number of digits.
Logistics fields
These additional logistics fields are only available in the order line level delivery schedule:
lines.deliverySchedule[IncludingRequests].status: the optional delivery line's Scheduled delivery logistics status.lines.deliverySchedule[IncludingRequests].etd: The optional logistics Estimated Time of Departure (local date without time zone). Date has ISO 8601 dateyyyy-MM-ddformat.lines.deliverySchedule[IncludingRequests].eta: The optional logistics Estimated Time of Arrival (local date without time zone). Date has ISO 8601 dateyyyy-MM-ddformat.
Scheduled delivery logistics status
Prices
lines.prices: the current prices, either havingIssuedorConfirmedvalues.
The lines.prices field does NOT include any open supplier or buyer request. Be aware that either the Issued or Confirmed values are returned, dependent on the line status.
lines.pricesIncludingRequests: the current prices, either havingIssued,In ProgressorConfirmedvalues.
The lines.pricesIncludingRequests field includes any open supplier or buyer request. Be aware that the Issued, proposal or reopen request or Confirmed values are returned, dependent on the line and request status.
Prices fields
lines.prices[IncludingRequests].grossPrice: the gross price. Used together withdiscountPercentage.lines.prices[IncludingRequests].discountPercentage: the discount percentage. Used together withgrossPrice.lines.prices[IncludingRequests].netPrice: the net price.priceInTransactionCurrency: the price in the transaction currency of the supplier, likeCNYin China.value: the price value has a decimal1234.56format with any number of digits.currencyIso: the 3-letter currency code according to ISO 4217, likeEUR,USDandCNY
priceInBaseCurrency: the price in your base currency, likeEURin the EU.value: the price value has a decimal1234.56format with any number of digits.currencyIso: the 3-letter currency code according to ISO 4217, likeEUR.
lines.prices[IncludingRequests].priceUnitOfMeasureIso: the 3-letter price unit according to ISO 80000-1. The purchase unit and price unit may be different.lines.prices[IncludingRequests].priceUnitQuantity: the item quantity at which the price applies. Typically this is 1 (unit price) or 100 (the price applies to 100 items)
Line status
Line process status
Line in Progress status
Line logistics status
Charge lines
chargeLines: the requested or confirmed additional cost lines of an order line, independent of the order line prices, like transport, packing, administration, inspection and certification costs.
position: the position used to identify a charge line.chargeTypeCode: the mandatory charge reason code according to UNCL7161chargeDescription: a mandatory free text description, like "Transport costs".quantity: the mandatory quantity of this charge line.price: the mandatory price of this charge line.priceInTransactionCurrency: the mandatory price in the transaction currency of the supplier, likeCNYin China.value: the price value has a decimal1234.56format with any number of digits.currencyIso: the 3-letter currency code according to ISO 4217, likeEUR,USDandCNY.
priceInBaseCurrency: the optional price in your base currency, likeEURin the EU.value: the price value has a decimal1234.56format with any number of digits.currencyIso: the 3-letter currency code according to ISO 4217, likeEUR.
priceUnitOfMeasureIso: the 3-letter price unit according to ISO 80000-1 which applies to the charge line price.
Item details
countryOfOriginCodeIso2: The ISO 3166-1 alpha-2 country code of manufacture, production, or growth where an article or product comes from.combinedNomenclatureCode: A tool for classifying goods, set up to meet the requirements both of the Common Customs Tariff and of the EU's external trade statistics.netWeight: Net weight of one item.netWeightUnitOfMeasureIso: Net weight unit according to ISO 80000-1.dangerousGoodsCodeUnece: UN numbers or UN IDs are four-digit numbers that identify dangerous goods, hazardous substances and articles in the framework of international transport.serialNumber: is an unique identifier assigned incrementally or sequentially to an item, to uniquely identify it.batchNumber: is an identification number assigned to a particular quantity or lot of material from a single manufacturer
Message meta information
messageId: The Tradecloud identifier of this messagesource: Includes meta information about the source of this message:traceId: The Tradecloud trace identifier of this message. All related messages in a flow will have the same traceIduserId: The Tradecloud user identifier which triggered the first message in a flowcompanyId: The Tradecloud company identifier which triggered the first message in a flow
createdDateTime: Date and time with time zone when this message was created
Last updated