SAP Document delivery

Delivery

The physical shipment of goods to a customer โ€” reduces stock immediately and posts COGS under perpetual inventory.

A Delivery (Delivery Note) records the physical shipment of goods to a customer. It is the document that actually moves inventory: the moment a delivery is posted, stock leaves the warehouse. It is the point in the sales chain where a commitment becomes a real, irreversible movement of goods.

Purpose

A delivery is created when goods are dispatched to the customer. It is required whenever physical goods ship โ€” it is the document that reduces inventory and, under perpetual inventory, records the cost of what was sold. Service-only sales (time, subscriptions, non-stock items) skip the delivery entirely and go straight from order to A/R Invoice.

The delivery warehouse on each line decides which stock location is drawn down. A delivery can be based on one or several sales orders, and an order can be delivered in multiple partial deliveries as stock becomes available.

Position in the document chain

The delivery copies from a sales order and is itself the usual base for the A/R Invoice.

flowchart TD
    SO[Sales Order] -->|goods ship| DEL[Delivery]
    DEL -->|billing| ARI[A/R Invoice]
    DEL -.reversed by.-> RET[Sales Return]

    style SO fill:#dbeafe,stroke:#3b82f6
    style DEL fill:#dcfce7,stroke:#16a34a,stroke-width:3px
    style ARI fill:#fef9c3,stroke:#ca8a04
    style RET fill:#fee2e2,stroke:#dc2626
  • Copies from: a Sales Order (most common), or created directly.
  • Becomes: an A/R Invoice (the invoice is normally based on the delivery, so inventory and billing stay in step).
  • Reversed by: a Sales Return, which brings the goods back into stock.

Key fields

The delivery is a Document entity with DocObjectCode = oDeliveryNotes.

Header

FieldMeaning
DocEntryInternal primary key.
DocNumUser-visible delivery number.
CardCodeCustomer business-partner code.
DocDateShipment (posting) date.
ShipToCodeShip-to address code.
DocTotalTotal goods value shipped.
DocumentStatusbost_Open until invoiced, then bost_Close.
CommentsFree-text remarks.

Lines (DocumentLines)

FieldMeaning
LineNum0-based line index.
ItemCodeItem master code.
QuantityQuantity shipped.
WarehouseCodeStock location reduced by this line โ€” the critical field.
PriceUnit price (carried for valuation / invoicing).
BaseType/BaseEntry/BaseLineLink back to the source sales-order line.

Stock and G/L effect

Stock decreases immediately. Posting the delivery reduces on-hand quantity at the warehouse named on each line. This is a real inventory movement, not a reservation.

COGS is posted (perpetual inventory). If the company runs perpetual inventory, the delivery also books the cost of goods sold:

DR  Cost of Goods Sold        600   โ† expense: cost of items shipped
CR      Inventory                    600   โ† inventory value reduced

Note this entry moves cost, not revenue โ€” revenue is recognised later by the A/R Invoice. Under periodic inventory, no G/L entry is made at delivery; the stock quantity still drops. Putting the wrong warehouse on a line reduces stock from the wrong location โ€” a common and costly mistake.

Service Layer entity

PropertyValue
SL entityDeliveryNotes
Object codeoDeliveryNotes (15)
Norma path/b1s/v1/DeliveryNotes

How to create it in Norma

Use the create_delivery tool. It needs:

  • card_code โ€” the customer’s code (e.g. C001).
  • lines โ€” each an item_code + quantity.

Prices come from the item master; the delivery tool takes no authoritative unit_price โ€” a delivery is about what and how much ships, not about pricing. Pricing is settled at the invoice. Use it when the user wants to ship, deliver, or dispatch items โ€” not for returns (use create_return) or invoices (use create_invoice).

Because a delivery moves real stock, the human-review gate matters especially here. The tool assembles the delivery, the review gate shows customer, lines, and warehouses, and only on approval does the connector POST it to /b1s/v1/DeliveryNotes. Nothing leaves the warehouse in SAP until a human approves.