Sales Return
The reversal of a delivery โ goods come back from the customer and stock increases. The physical counterpart to a delivery.
A Sales Return (A/R Return) records goods coming back from a customer. It is the physical reversal of a Delivery: where the delivery took stock out of the warehouse, the return puts it back in. It handles the goods side of a return โ the money side (crediting the customer) is a separate document, the A/R Credit Memo.
Purpose
A return is created when a customer sends goods back โ wrong item, damaged shipment, over-delivery, or a cancelled order after dispatch. Its job is to bring the returned quantity back into inventory so stock counts stay accurate. It is the mirror image of the delivery and, like the delivery, is about physical movement rather than pricing.
A return handles goods only. If the customer is also owed money back, an A/R Credit Memo is raised to reverse the invoice value. The two are separate documents because goods and money can move independently โ a customer might return goods without a refund, or be credited without returning anything.
Position in the document chain
The return reverses a delivery; the credit memo (its money-side sibling) reverses the invoice.
flowchart TD
DEL[Delivery] -->|goods returned| RET[Sales Return]
ARI[A/R Invoice] -->|value credited| CM[A/R Credit Memo]
RET -.goods side.- CM
style DEL fill:#dcfce7,stroke:#16a34a
style RET fill:#fee2e2,stroke:#dc2626,stroke-width:3px
style ARI fill:#fef9c3,stroke:#ca8a04
style CM fill:#fee2e2,stroke:#dc2626- Copies from: a Delivery (reverses it), or created directly.
- Pairs with: an A/R Credit Memo โ the return handles goods, the credit memo handles value.
Key fields
The return is a Document entity with DocObjectCode = oReturns.
Header
| Field | Meaning |
|---|---|
DocEntry | Internal primary key. |
DocNum | User-visible return number. |
CardCode | Customer business-partner code. |
DocDate | Return (posting) date. |
DocTotal | Value of returned goods. |
DocumentStatus | bost_Open / bost_Close. |
Comments | Reason for the return. |
Lines (DocumentLines)
| Field | Meaning |
|---|---|
LineNum | 0-based line index. |
ItemCode | Item master code. |
Quantity | Quantity returned. |
WarehouseCode | Stock location the goods return into โ mirrors the delivery’s warehouse field. |
BaseType/BaseEntry/BaseLine | Link back to the original delivery line. |
Stock and G/L effect
Stock increases. Posting the return raises on-hand quantity at the warehouse on each line โ the exact reverse of the delivery’s stock reduction. The goods are back in inventory and available again.
COGS reversal (perpetual inventory). Under perpetual inventory the return reverses the cost entry the delivery made:
DR Inventory 600 โ goods back in stock, value restored
CR Cost of Goods Sold 600 โ the COGS expense is reversedThis unwinds the cost side only. The revenue side โ reversing the amount the customer was billed โ is handled by the A/R Credit Memo, not the return.
Service Layer entity
| Property | Value |
|---|---|
| SL entity | Returns |
| Object code | oReturns (16) |
| Norma path | /b1s/v1/Returns |
How to create it in Norma
Use the create_return tool. It needs:
card_codeโ the customer’s code (e.g.C001).linesโ each anitem_code+quantity.
Prices come from the item master; the return tool takes no authoritative
unit_price โ like the delivery it mirrors, a return is about goods and quantities,
not pricing. Use it when the user wants to return, take back, or accept returned
goods from a customer โ not for deliveries (use create_delivery), goods issues, or
credit memos (use create_credit_memo).
As with every Norma write, the return is held for human review. The tool assembles
it, the review gate shows customer, lines, and warehouses, and only on approval does
the connector POST it to /b1s/v1/Returns. Nothing re-enters stock in SAP until a
human approves.