SAP Movement Type Tables: T156, T156T, T157D and Related Configuration
A reference of the SAP ECC 6.0 tables, transactions and authorization objects that define movement types, their texts, reason codes and the link to account determination. Use it when you need the right table for a report or the right place to change a movement type setting.
| Object | Type | Description | Key fields | Where maintained | Typical query |
|---|---|---|---|---|---|
T156 | Table | Movement type control: debit/credit and behaviour flags | BWART; SHKZG, KZWES, KZVBU, KZDRU, KZGRU, XINVB | OMJJ | Is reason for movement controlled for 551? |
T156T | Table | Movement type texts by language and indicator combination | SPRAS, BWART, SOBKZ, KZBEW, KZZUG, KZVBR; BTEXT | OMJJ > Short texts | Description of 261 or of 101 with KZBEW B |
T156HT | Table | Movement type main text (one per language) | SPRAS, BWART; HTEXT | OMJJ | Plain list of movement types and names |
T156Q | Table | Material-independent control per indicator combination | BWART, SOBKZ, KZBEW, KZZUG, KZVBR | OMJJ > Allowed transactions and indicators | Which special stocks are allowed for 411? |
T156B | Table | Screen and field selection per movement type and special stock | BWART, SOBKZ; FAUSW (field selection string) | OMJJ > Field selection (enjoy) | Is the reason field mandatory for 201? |
T156SY | Table | System table: quantity and value update strings per indicator combination | BUSTR (posting string reference from T156), WERTU, MENGU, SOBKZ, KZBEW, KZZUG, KZVBR; BUSTM (quantity string), BUSTW (value string) | System table, do not change | Which value string does 201 use? |
T156X | Table | Transaction/event key modification per movement type | BWART, WERTU, MENGU, SOBKZ, KZBEW, KZVBR, BUSTW; KOMOK (account modifier) | OMWN (account grouping) | Which account modifier does 201 use? |
T157D | Table | Allowed reasons for movement per movement type | BWART, GRUND | OMBS or OMJJ > Reason for movement | Reason codes allowed for 122 |
T157E | Table | Texts of reasons for movement | SPRAS, BWART, GRUND; GRTXT | OMBS or OMJJ > Reason for movement | Text of reason 0001 on 551 |
MSEG-BWART / MSEG-GRUND | Table fields | Movement type and reason recorded on each material document item | MBLNR, MJAHR, ZEILE | Posted via MIGO and other goods movements | Scrap by reason code per month |
T030 | Table | Standard account table for automatic postings (transaction keys BSX, GBB, WRX, PRD and others) | KTOPL, KTOSL, BWMOD, KOMOK, BKLAS | OBYC | Offsetting account for 201 (GBB with VBR) |
OMJJ | Transaction | Maintain movement types (copy, texts, allowed transactions, field selection, reversal, reasons) | Movement type range | SPRO > Materials Management > Inventory Management and Physical Inventory > Movement Types | Copy 551 to Z51 |
OMWN | Transaction | Define account grouping (account modifier) for movement types | BWART, value string, KOMOK | SPRO > MM > Valuation and Account Assignment > Account Determination | Which account modifier for a new Z movement type |
OMBS | Transaction | Record reason for goods movements | BWART, GRUND | SPRO > MM > Inventory Management > Movement Types > Record Reason for Goods Movements | Add reason code 0005 to 201 |
M_MSEG_BWA | Authorization object | Goods movements: movement type | ACTVT, BWART | PFCG | Which roles allow 561? |
M_MSEG_WWA | Authorization object | Goods movements: plant | ACTVT, WERKS | PFCG | Plant restriction for goods movements |
M_MSEG_LGO | Authorization object | Goods movements: storage location | ACTVT, WERKS, LGORT, BWART | PFCG | Restrict postings to a storage location |
M_MSEG_BWE | Authorization object | Goods receipt for purchase order: movement type | ACTVT, BWART | PFCG | Who can post 101 against POs |
M_MSEG_BWF | Authorization object | Goods receipt for production order: movement type | ACTVT, BWART | PFCG | Who can post 101 against production orders |
SAP standard movement types should never be changed. Copy them in OMJJ into the customer name range (9xx, or X, Y, Z followed by two characters) and adjust the copy. Check field lists and keys in SE11 on your release before writing code against them.
Check your custom movement types
Send us extracts of T156, T156X and T157D for your Z movement types and we will flag missing reversals, account groupings and reason setups.
Optional. The tool and every export work without this. No spam.
How to use it
Search by object or by question. For a list of movement types with names, T156HT is the simplest table. For the exact text a user sees in MIGO for a combination such as 101 against a purchase order, T156T is the right one because its key includes SOBKZ, KZBEW, KZZUG and KZVBR. Reason codes are in T157D (allowed per movement type) and T157E (texts), and the value used is stored in MSEG-GRUND. Authorization objects are listed so that security and MM teams can align roles with the movement types each user should post.
Where this lives in ECC
OMJJ maintains movement types and opens views for short texts, allowed transactions, help texts, field selection, update control, account grouping, reversal and follow-on movement types and reasons for movement. The IMG path is SPRO > Materials Management > Inventory Management and Physical Inventory > Movement Types. Account grouping (the account modifier such as VBR for consumption) is set in OMWN and feeds OBYC, where T030 maps transaction keys like GBB to G/L accounts. Reason codes have their own IMG activity, Record Reason for Goods Movements (OMBS).
Worked example: a custom scrap movement type
A plant needs scrap postings that go to a separate G/L account and always require a reason. In OMJJ copy 551 to Z51 (and copy its reversal 552 to Z52). Set the reason field to mandatory in the field selection view and add allowed reasons in OMBS, which writes T157D and T157E. In OMWN assign a new account modifier to Z51 for transaction key GBB, then add that modifier in OBYC so T030 points to the new account. Finally add Z51 to M_MSEG_BWA in the roles that may scrap, and test a posting and its reversal.
Gotchas
Changing a standard movement type affects every plant in the client and is overwritten or flagged in upgrades, so always copy. T156SY is a system table: you change behaviour through OMJJ and OMWN, not by touching update strings. Whether a reason is checked is controlled by T156-KZGRU (control reason for movement), while optional or mandatory entry comes from field selection. Authorization checks on M_MSEG_BWA apply to the movement type, but M_MSEG_BWE and M_MSEG_BWF apply instead for receipts against purchase and production orders, which surprises teams who only maintain BWA.
Frequently Asked Questions
Which table stores movement types in SAP?
T156 holds the movement type control data keyed by BWART. Texts are in T156HT (main text per language) and T156T (texts per indicator combination such as special stock and movement indicator). Settings are maintained in OMJJ.
Which table stores movement type reason codes?
T157D stores the allowed reasons (GRUND) per movement type, and T157E stores their texts by language. The reason entered in a posting is saved in MSEG-GRUND. Maintain both in the IMG activity Record Reason for Goods Movements (OMBS).
What is the authorization object for movement type?
M_MSEG_BWA checks the movement type for goods movements, with M_MSEG_WWA for plant and M_MSEG_LGO for storage location. Goods receipts against purchase orders and production orders use M_MSEG_BWE and M_MSEG_BWF for the movement type check.
Can I change an SAP standard movement type?
Technically yes in OMJJ, but it is not recommended: the change applies client-wide and is hard to separate at upgrade. Copy the standard type into the customer range (9xx or a name starting with X, Y or Z) and adjust the copy, including its reversal type.
If you want MM and security teams to ask which movement types each role can post, answered from your own ECC tables on your servers, we can set that up.
Related Tools
SAP ECC Stock Type and Location Transfer Movement Type Matrix
From/to matrix of SAP ECC 6.0 movement types for stock type changes, storage location and plant transfers, returns, issues, scrapping and initial entry, with reversals and accounting impact.
SAPSAP Movement Types Reference
Searchable table of the most used SAP MM movement types with their reversal type, stock effect and typical use.
SAPSAP ECC Classic BAdI Definitions Reference (MIGO, ME21N, MIRO, Deliveries, PM Orders)
Reference table of widely used BAdI definitions on SAP ECC 6.0 with interface, key methods, transactions and typical use, plus how to find a BAdI and where error messages are allowed.
More SAP tools
See all- SAP ECC Private AI Layer Blueprint Generator
- SAP ECC AI Assistant Sizing and Value Calculator
- SAP ECC SD User Exit Forms Reference (MV45AFZZ, RV60AFZZ, MV50AFZ1)
- SAP ECC Customer Exits (SMOD Enhancements) by Module Reference
- SAP ECC Background Job Tables Reference (TBTCO, TBTCP, Job Status Codes)
- SAP ECC Output Determination Tables and Codes Reference (NAST, TNAPR, NACE)
- SAP ECC Movement Type to OBYC Transaction Key and GBB Account Modifier Reference
- SAP ECC 6.0 Enhancement Packages and Maintenance Dates Reference (EHP1 to EHP8, 2027, 2030, 2033)
- SAP ECC ORDERS05 IDoc Segments and Qualifiers Reference
Keep exploring
Free tools
- SAP Movement Types ReferenceSearchable table of the most used SAP MM movement types with their reversal type, stock effect and typical use.
- SAP ECC Stock Type and Location Transfer Movement Type MatrixFrom/to matrix of SAP ECC 6.0 movement types for stock type changes, storage location and plant transfers, returns, issues, scrapping and initial entry, with reversals and accounting impact.
- SAP ECC Movement Type to OBYC Transaction Key and GBB Account Modifier ReferenceLook up which OBYC transaction key and GBB account modifier a SAP ECC movement type uses, so you know which G/L account a goods movement will hit.
ERP fixes and how-tos
- How to add AI to SAP ECC 6.0 on-prem without moving data to a cloudReference architecture for a private on-prem AI assistant on SAP ECC 6.0: RFC and BAPI reads, SLT replica, retrieval index, local LLM, permission mirroring.
- Cost Center in SAP MM: Purchase Orders and Goods IssuesHow a cost center is used in SAP MM: account assignment category K on purchase orders, goods issues with movement type 201, and the account determination behind them.
- SAP MM Return to Vendor Process: Return PO, MIGO 161 and Credit MemoReturn goods to a vendor in SAP MM: return PO, MIGO movement 161 or 122, credit memo in MIRO, and how to handle scrap, rework and replacement shipments.
AI on your ERP
- Get AI Value From SAP ECC Now, and Use It to De-Risk the Move to S/4HANASAP ECC 6.0 mainstream maintenance ends in 2027. Add AI value on ECC now, using its existing BAPIs and IDocs, and use it to de-risk the S/4HANA migration.
- AI on SAP for Aerospace and Defense Manufacturers, Without the ITAR ExposureEvaluate SAP for aerospace and defense industrial AI: S/4HANA and ECC data access, serial genealogy, config control and quoting, with ITAR data kept in-house.
Integrations
- How to add WhatsApp to SAP ECC 6.0How to connect WhatsApp Business to SAP ECC 6.0 using BAPIs, IDocs and output determination: order status, shipment alerts, approvals and supplier replies.
- How to connect Power BI to SAP ECC 6.0Connect Power BI to SAP ECC 6.0: SAP ERP connector, BW and warehouse options, on-prem data gateway, key manufacturing dashboards, and adding natural-language Q&A.