For the complete documentation index, see llms.txt. This page is also available as Markdown.

Receive an order

How to receive a purchase order sent by the buyer

Tradecloud sends purchase orders (new or updated) to suppliers when order events are triggered.

Receiving methods

Choose your API method

You must choose between two methods to receive orders:

  • Webhook API (Push): Tradecloud pushes orders to your system

  • Polling API (Pull): Your system periodically checks for new orders

For details on choosing between these methods:

Webhook versus polling

Choose 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 schedule

If you're using single delivery format, please see:

Single delivery order

Implementation 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.

  • eventName: Contains the Order event name

  • orderEvent: Contains the actual order event

Using the polling API

See the Polling setup guide for instructions on how to configure polling.

Use the POST poll endpoint.

  • order: Contains the actual order in its current state

Order structure

This section assumes you're using either the orderEvent webhook API or the order polling API.

Order header

The order header contains:

  • id (in order) or orderId (in orderEvent): Tradecloud order identifier

  • buyerOrder: the buyer part of the order, see below.

  • supplierOrder: the supplier part of the order.

  • indicators.deliveryOverdue is true when at least one order line is overdue.

  • status.processStatus: is the aggregate of all lines Order process status.

  • status.logisticsStatus: is the aggregate of all lines Order logistics status.

  • version: the Tradecloud order version number.

  • eventDates: some key order event date/times.

  • meta: meta information, including source and trace info, about this message.

  • lastUpdatedAt: is the latest date time the order has been changed, useful for polling orders.

Buyer order

buyerOrder contains the buyer order fields:

  • companyId: the buyer's Tradecloud company identifier.

  • supplierAccountNumber: your account number as known in the buyer's ERP system.

  • description: a free-format additional description of this order added by the buyer.

  • contact: the buyer employee responsible for this order.

  • properties: are key-value-based custom fields, added by the buyer.

  • notes: are simple custom fields, added by the buyer.

  • labels: value-added services labels on order level.

  • documents: contain meta data, objectId or url, of attached documents by the buyer. See:

Download a document attached to an order
  • orderType: the order type, one of Purchase, Forecast or RFQ. Default Purchase.

Supplier order

supplierOrder is mostly an echo of your order fields as explained in Send order response​.

  • buyerAccountNumber: the buyer account number as known in your ERP system.

Order status

The order status is the aggregation of all the lines statuses. See Order status for the complete list of values.

orderEvent or order lines

lines contains one or more order lines:

  • id: the Tradecloud line identifier.

  • lineType: one of Item, Service, or Charge. See Order line type

  • chargeReasonCode: optional UNCL7161 code when the buyer set a charge reason on the line

  • buyerLine: the buyer part of the order line, see Buyer line below.

  • supplierLine: the supplier part of the order line, see Supplier line below.

  • confirmedLine: the order line as agreed between buyer and supplier, see Confirmed line below.

  • deliverySchedule: the current aggregated delivery schedule, see Delivery schedule.

  • deliveryScheduleIncludingRequests: the current aggregated delivery schedule including requests, see Delivery schedule.

  • prices: the actual prices, see Prices below.

  • pricesIncludingRequests: the actual prices, including any open supplier or buyer requests, see Prices.

  • indicators.deliveryOverdue is true when the order line is overdue.

  • status.processStatus: the order line's Line process status.

  • status.inProgressStatus: the order line's Line in progress status.

  • status.logisticsStatus: the order line's Line logistics status.

  • eventDates: some key line event date/times.

  • mergedItemDetails: 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

buyerLine contains the buyer order line fields:

  • position: the line position within the purchase order

  • description: a free-format additional description of this line

  • item: the item (or article, goods) to be delivered, see Item

  • requests: the buyer can request different delivery schedule and prices

  • terms: the line terms as agreed with your buyer

    • contractNumber: the agreed framework contract number

    • contractPosition: the related position within the framework contract

  • projectNumber: The buyer's project number reference

  • productionNumber: The buyer's production number reference

  • salesOrderNumber: The buyer's sales order number (not be confused with your sales order number)

  • indicators.noDeliveryExpected: No goods are expected to be delivered to the buyer, for example a service, fee or text line.

  • indicators.delivered: All goods are delivered at the buyer.

  • properties: are key-value-based custom fields. \n may be used for a new line in the value.

  • notes: are simple custom fields. \n may be used for a new line.

  • labels: value-added services labels on line level.

  • documents: contain meta data and link of attached documents, see:

Download a document attached to an order

Item

lines.buyerLine.item: The item (or article, goods) to be delivered.

  • number: the item code or number as known in the buyer ERP system.

  • revision: the revision (or version) of this item number

  • name: the item short name

  • purchaseUnitOfMeasureIso: the purchase unit of measure, passed through as-is. No standard is enforced; UN/ECE Recommendation N°20 is recommended if you want a standard. A typical example is PCE

  • supplierItemNumber: the item code or number as known at the supplier.

Buyer requests

lines.buyerLine.requests.reopenRequest: the buyer requests to reopen the confirmed order line. The buyer has requested a different delivery schedule and prices compared to the confirmed order line.

  • deliverySchedule: the requested alternative delivery schedule

  • prices: the requested alternative prices

  • chargeLines (deprecated): the requested alternative charge lines, see Charge lines

  • reason: the reason of this request given by the buyer

  • status: the Request status.

Supplier line

supplierLine is an echo of your order line fields as explained in Send order response​.

Confirmed line

lines.confirmedLine: the agreed order line between buyer and supplier.

  • lines.confirmedLine.deliverySchedule: the agreed delivery schedule

  • lines.confirmedLine.prices: the agreed prices

  • lines.confirmedLine.chargeLines (deprecated): the agreed charge lines, see Charge lines

Delivery schedule

When using order or orderEvent the delivery schedule is used.

The lines.deliverySchedule together with the lines.prices fields give a simpler alternative for the deliverySchedule and prices fields in different places like buyerLine, buyerLine.requests, supplierLine.requests and confirmedLine.

  • lines.deliverySchedule: the current delivery schedule, either having Issued or Confirmed values.

  • lines.deliveryScheduleIncludingRequests: the current delivery schedule, either having Issued, In Progress or Confirmed values.

Delivery schedule fields

  • lines.deliverySchedule[IncludingRequests].position: the optional position in the delivery schedule. Not to be confused with the line.position

  • lines.deliverySchedule[IncludingRequests].date: the delivery date of this delivery schedule position. Date has ISO 8601 date yyyy-MM-dd format. See also Standards.

  • lines.deliverySchedule[IncludingRequests].quantity: the quantity of this delivery schedule position. Quantity has a decimal 1234.56 format 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 date yyyy-MM-dd format.

  • lines.deliverySchedule[IncludingRequests].eta: The optional logistics Estimated Time of Arrival (local date without time zone). Date has ISO 8601 date yyyy-MM-dd format.

Prices

  • lines.prices: the current prices, either having Issued or Confirmed values.

  • lines.pricesIncludingRequests: the current prices, either having Issued, In Progress or Confirmed values.

Prices fields

  • lines.prices[IncludingRequests].grossPrice: the gross price. Used together with discountPercentage.

  • lines.prices[IncludingRequests].discountPercentage: the discount percentage. Used together with grossPrice.

  • lines.prices[IncludingRequests].netPrice: the net price.

    • priceInTransactionCurrency: the price in the transaction currency of the supplier, like CNY in China.

      • value: the price value has a decimal 1234.56 format with any number of digits.

      • currencyIso: the 3-letter currency code according to ISO 4217, like EUR, USD and CNY

    • priceInBaseCurrency: the price in your base currency, like EUR in the EU.

      • value: the price value has a decimal 1234.56 format with any number of digits.

      • currencyIso: the 3-letter currency code according to ISO 4217, like EUR.

  • lines.prices[IncludingRequests].priceUnitOfMeasureIso: the price unit of measure, passed through as-is. No standard is enforced; UN/ECE Recommendation N°20 is recommended if you want a standard. 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)

It is advised to only use netPrice for its simplicity, or alternatively use grossPrice together with discountPercentage.

Line status

See Line status for the complete list of line process, in progress and logistics status values.

Charge lines

Item details

The buyer may send item details to inform the supplier about part information. The supplier may check, change and add item details if they are not correct or incomplete. lines.mergedItemDetails will contain the original item details added by the buyer merged with the changed or added item details by the supplier.

  • 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 of measure, passed through as-is. Mandatory when netWeight is provided. No standard is enforced; UN/ECE Recommendation N°20 is recommended if you want a standard.

  • 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 a 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

Last updated