📦 MIGO — the complete master guide

MIGO is the one transaction for almost every stock movement in SAP — receiving, issuing, transferring, returning, reversing. This guide takes you from zero SAP/accounting knowledge to confident: what a goods movement is, every field on the screen (with the why + easy examples), all the use cases, what's mandatory when, and what can be customized.

1 · What MIGO does (and the 2 documents) 2 · The top bar: Action + Reference + Movement 3 · The screen layout 4 · Header fields 5 · Line-item tabs, field by field 6 · Stock types & special stock 7 · Movement lookup (what to pick) 8 · Account assignment 9 · What's mandatory, per scenario 10 · Customizing & other possibilities 11 · Common errors & fixes 12 · Verify what you posted 13 · Shortcuts & cancellation

1 · What MIGO does — and the two documents it creates

A goods movement is any time stock physically changes: it comes in (you receive iron), goes out (you consume it), or moves (warehouse → workshop). MIGO is how you record that in SAP.

🔑 Every movement can create TWO documents
Easy example: receive 50 TO iron (mvt 101) → material doc (50 TO into store RAWM) and accounting doc (Inventory ↑ Dr / GR-IR ↑ Cr). But move 10 TO from store RAWM to workshop WIPS (mvt 311) → only a material doc — the value didn't change, so no accounting doc.

The movement type (a 3-digit code) is the precise instruction. The first digit tells you the direction:

Starts with…MeansExamples
1xxReceipt — stock in101 GR from PO · 561 initial stock
2xxIssue — stock out201 to cost center · 261 to order · 551 scrap
3xxTransfer — move/reclassify311 SLoc→SLoc · 309 material→material · 301 plant→plant
even / +1Reversal of the one below it102 reverses 101 · 262 reverses 261

2 · The top bar — set three things before anything

1 · Action+ 2 · Reference+ 3 · Movement Type → fill lines → Post
DropdownAsksChoices you'll use
1 · ActionWhat kind of movement?Goods Receipt · Goods Issue · Transfer Posting · Return Delivery · Cancellation · Display
2 · ReferenceAgainst which document? (SAP pulls the lines from it)Purchase Order · Order (production) · Reservation · Material Document · Delivery · Other (no document)
3 · Movement TypeThe exact instruction101 201 261 311
The one idea that unlocks it: the Reference answers "is there a document behind this?" — pick Purchase Order / Order / Reservation and SAP fills the material, qty and plant from it; pick "Other" for manual movements (consume, transfer, scrap) where you type everything. The Action just narrows the movement types offered.

3 · The screen layout — three zones

ZoneWhat it is
Top barAction + Reference + Movement Type (section 2)
Header (collapsible "General" area)Document Date, Posting Date, Delivery Note, Doc Header Text — applies to the whole document (section 4)
Line items (the grid)One row per material being moved — material, qty, OK flag
Item detail (tabs below the grid)The details of the selected line — Material, Quantity, Where, Purchase Order, Account Assignment… (section 5)

Workflow: set the top bar → fill the header dates → each line auto-loads (from the PO/order) or you type it → open the Where / Account Assignment tabs to complete it → tick Item OKCheck (traffic light goes green) → Post. SAP shows the material document number.

FieldMandatory?What & why
Posting Date✅ (defaults today)The most important one — it decides which accounting period the posting hits. Must be in an open period (else "period not open"). Backdate it to post into last month.
Document Date✅ (defaults today)The date on the vendor's paperwork/delivery note. Informational.
Delivery Note / Bill of Lading○ optional(GR) the vendor's delivery-note number — for tracing.
Material Slip○ optionalA reference text printed on the goods slip.
Doc. Header Text○ optionalA free note for the whole document.
Print / Individual Slip○ optionalWhether/how to print a goods-movement slip.

5 · Line-item tabs — field by field

Select a line, and these tabs show its details. You won't use every tab every time — only the ones relevant to the movement.

Quantity tab
FieldMandatory?What & why
Qty in Unit of EntryHow much is moving (e.g. 25). For a GR you can enter less than the PO (partial delivery).
Unit of EntryautoThe unit (TO, EA…). Defaults from the material's base unit.
Where tab — the most-used tab
FieldMandatory?What & why
Movement TypeThe 3-digit code (also in the top bar). Confirms the instruction for this line.
PlantWhich plant the stock belongs to (e.g. PK01).
Storage Location✅ (for stock materials)Which store the stock lands in / leaves from (RAWM, WIPS, FNGD). For a transfer (311) you set both a source and a destination SLoc. ⚠️ The material must be extended to that SLoc first (MMSC) or you get "SLoc does not exist" — see errors.
Stock Type✅ (defaults Unrestricted)Unrestricted / Quality inspection / Blocked — see section 6.
Batchif material is batch-managedWhich batch/lot (e.g. a heat number for steel). Only appears for batch-managed materials.
Reason for Movement○ / ✅ if configuredWhy the movement happened (e.g. "damaged" for a scrap/return). Often made mandatory for returns & scrapping for audit.
Goods Recipient / Unloading Point○ optionalFree text — who receives it / where to unload.
Purchase Order tab (GR against a PO)
FieldMandatory?What & why
Purchase Order / Item✅ (when Reference = PO)The PO number + line you're receiving against. SAP pulls material, qty, plant from it.
"Delivery Completed" flag○ optionalTick to say "no more deliveries expected on this PO line" even if short-delivered.
Account Assignment tab (issues & account-assigned POs)
FieldWhen it appearsWhat & why
Cost CenterGI to cost center (201)Which department's budget the cost charges to (e.g. PKKHI-PROD).
OrderGI to production order (261)The production order the cost collects on (e.g. 2000000).
WBS Elementproject procurement (221/P)The project task the cost rolls up to.
Assetasset GR (acct assignment A)The asset master being capitalised.
G/L Accountnon-stock / account-assignedThe expense account the cost posts to.
Other tabs (only when relevant)
TabUsed for
BatchMaintain batch characteristics (production date, shelf life) for batch-managed materials.
Serial NumbersMaterials tracked by individual serial number (e.g. machines, IT).
PartnerVendor/customer partner on the movement (e.g. subcontractor).

6 · Stock types & special stock

Stock type = the condition the stock is in. Same material, three buckets:

Stock typeMeaningCan you use/sell it?
Unrestricted-useGood, available✅ yes
Quality inspectionHeld pending QM check❌ locked until released (mvt 321 → unrestricted)
BlockedQuarantined (e.g. damaged)❌ locked (mvt 343/344 to move in/out)

Special stock = stock that isn't simply "yours in your store." It carries a special-stock indicator and is tracked separately:

IndicatorSpecial stockPlain meaning
KConsignmentVendor's stock sitting in your store — you only pay when you use it
OSubcontractingYour components sitting at a subcontractor's site
ESales-order stockMade/bought for one specific customer order
QProject stockReserved for a specific project (WBS)
PPipelineDrawn as needed from a pipe/grid (gas, water) — never "stored"

7 · Movement lookup — what to pick for each

MovementActionReferenceWhen & whyScenario
101 GR from POGoods ReceiptPurchase OrderReceive bought goods1
101 GR from productionGoods ReceiptOrderReceive the finished product off a production orderPP
122 return to vendorReturn DeliveryMaterial DocumentSend back a bad delivery (before invoice)2
161 return via return POGoods IssuePurchase OrderReturn against a PO flagged "Returns"2
201 GI to cost centerGoods IssueOtherConsume to a department — type it3.1
261 GI to production orderGoods IssueOrderIssue components onto a production order3.2
311 transfer SLoc → SLocTransfer PostingOtherMove stock between stores, same plant3.3
309 material → materialTransfer PostingOtherReclassify one material code into another3.4
301 plant → plantTransfer PostingOtherMove stock directly between plants3
321 quality → unrestrictedTransfer PostingOtherRelease stock after a QM check passes
551 scrappingGoods IssueOtherWrite off damaged/obsolete stock
561 initial stock entryGoods ReceiptOtherLoad opening stock (no PO) — handy to give a test material some stock
541 GI to subcontractorTransfer PostingOtherProvide components to a subcontractor9

8 · After "Other" — the account-assignment question

When there's no reference document, an issue still needs to know where the cost goes. On the line's Account Assignment tab pick the object that matches:

MovementAccount assignmentExample
201 to cost centerCost CenterPKKHI-PROD
261 to orderOrder2000000
221 to projectWBS Elementa project WBS
311/309 transfersnone — just from/to SLoc or material

9 · What's mandatory, per scenario

MovementMust fillOptional / not needed
101 GR from POPO #, posting date, SLoc, (batch if managed)delivery note, doc header text
201 GI to cost centerCost center, material, qty, plant, SLocno reference doc, no batch unless managed
261 GI to orderOrder #, qty, plant, SLocRM-IRON-01 auto-pulled if in the order
311 SLoc transferFrom + To storage location, material, qty, plantno account assignment, no FI doc
309 material → materialFrom + To material (both must exist), qty, plant, SLoc
122 return to vendorreference material document, qty, often reason for movement
551 scrappingmaterial, qty, SLoc, cost center or reason

10 · What you can customize (and why)

MIGO's behaviour comes from the movement type configuration — you rarely change it, but a senior MM consultant should know what's adjustable:

SettingT-codeWhat it controls / why change it
Movement type setupOMJJThe master config of a movement type: which stock type it touches, whether it updates quantity & value, the account grouping (the GBB modifier OBYC uses), field selection (which fields are shown / mandatory / hidden), and "Allowed Transactions" (whether the movement is permitted in MIGO at all — the fix for the "movement type not allowed" error).
Reasons for movementOMBSDefine the reason codes (damaged, expired…) and make them mandatory for scrapping/returns — for audit trails.
Tolerances for GROMC0How much over/under a PO quantity a goods receipt may post before it warns or blocks.
GR/GI slips (printing)OMB5 / NACEWhether and how goods slips print.
Your MIGO defaults(MIGO → Settings → Default Values)Per-user defaults: your usual plant, SLoc, "propose all items OK" — speeds up daily work, affects no one else.
Custom (Z) movements: you can copy a standard movement type in OMJJ to a Z-range and tweak it (e.g. a special scrap movement that forces a reason and a specific G/L). Rare, but that's where it's done.

11 · Common errors & fixes

MessageCauseFix
"Deficit of stock …"Not enough unrestricted stock at that plant/SLocCheck stock (MMBE); receive/transfer some first, or post to the SLoc that has it
"Material … plant … SLoc does not exist"The material has no storage-location view (MARD) for that store — common on a 311 transfer to a new SLocExtend it: MMSC → material + plant → add the SLoc → Save (or MM01 "Plant data/stor. 1" view). Auto-create at movements via OMB3.
"Movement type X not allowed"OMJJ "Allowed Transactions" doesn't list MIGO for that movementOMJJ → movement → Allowed Transactions → add MIGO (this was the M7 873 fix in Scenario 2)
"Posting period not open"The posting date's period is closedOpen it (MMPV/OB52) or use a date in an open period
"Account determination … not possible"OBYC has no G/L for that valuation class + transaction keyOBYC → add the G/L (see Accounting 101 → OBYC)
Order "not permitted for goods movement"The production order isn't releasedRelease it (CO02 → green flag) before the 261

12 · Verify what you posted

13 · Shortcuts & cancellation

The classic single-purpose codes pre-set the Action, so you only enter the movement type + lines:

T-codePre-set actionUse for
MB1AGoods Issue201, 261, 551
MB1BTransfer Posting311, 309, 301
MB1COther Goods Receipts561 initial stock, 501
MB31GR for production order101 from a production order
Made a mistake? Cancel it. MIGO → Action Cancellation · Reference Material Document → enter the doc number → Post. SAP posts the opposite movement (102 reverses 101, 262 reverses 261) and reverses the accounting too. Never delete — always reverse.
▶ Where MIGO is used
Goods receipts (Scn 1), returns (2), issues & transfers (3), subcontracting (9), STO (7/8), and more. The accounting behind each posting is explained in Accounting 101.
← Used in
Scenario 3 — Goods Issue & Transfers
All →
P2P Scenarios Hub