SAP Procure to Pay (MM Full Cycle) – Realistic Hands‑On Tutorial with Real Company Data & FI Integration
Welcome to the real world of Procure to Pay. This is not a theory lesson or a memory dump of T‑codes. This is the end‑to‑end procurement walkthrough that will finally connect the dots between a purchase requisition, a goods receipt, and a vendor’s bank account. We’ll build everything from master data to payment, using a single, coherent company story. You will see not only what happens in SAP, but also why every single step exists, and where the financial impact lands. By the end, you will be able to run a full P2P cycle in your own sandbox, explain it to an accountant, and – most importantly – troubleshoot it when things go wrong.
We will use the same company from our Order to Cash article: GlobalTech Innovations (Company Code 1000), a mid‑sized IT hardware distributor and manufacturer. Today we are not selling; we are buying. Our purchasing organization is 1000 – Central Procurement, plant is 1100 – Bangalore Factory, and the vendor we rely on most is TechSupply Inc. (Vendor 200001). The material we need to procure is a raw material called MAT‑RM‑001 – Aluminum Enclosure (for ProSwitch), and later we will also buy a packaging material, subcontracting services, and office supplies. Every number, every accounting entry, and every screen is concrete. You can replicate it all.
Let’s stop treating MM like a list of movement types and start thinking like a supply chain consultant.
1. The Procure to Pay Mindset – It’s a Financial Cycle, Not Just Purchasing
Procure to Pay (P2P) is the mirror image of Order to Cash. It covers the entire journey from recognising a need for goods or services to paying the vendor. In SAP, it spans Materials Management (MM) and Financial Accounting (FI), with tight integration to Production Planning (PP) and Sales & Distribution (SD) when needed. Mastering P2P means you can trace every rupee from a purchase requisition right to the profit‑and‑loss statement and the balance sheet.
An SAP MM consultant never just “creates a purchase order”. You must always ask:
- Why is this material needed? Is it for a production order, a cost centre, or a stock replenishment?
- What is the valuation class of the material, and how will it affect the balance sheet on goods receipt?
- Do we need a release strategy because the value exceeds a certain limit?
- Which tax jurisdiction applies? Are we using the correct tax code?
- When we receive the goods, what is the GR/IR clearing account and how does it reconcile with the invoice?
- If the invoice price differs from the PO price, how do we handle the variance without stopping payment?
We will answer all of that by doing, not reading. You will enter transactions, see the FI documents appear, and then trace them back to the configuration.
2. Master Data – The Nervous System of Procure to Pay
Before you can type ME51N (create PR) or ME21N (create PO), you must have rock‑solid master data. Skip even one record, and you’ll face an error that a real user will raise as a high‑priority ticket. We will set up everything you need.
2.1 Vendor Master (Transaction FK01 / XK01)
Create vendor 200001 – TechSupply Inc. in company code 1000 and purchasing organization 1000.
- General Data: Name 1 = TechSupply Inc., Search term = TECHSUPPLY, Address = 12 Industrial Area, Peenya, Bangalore, Country = IN, Region = KA. Language = EN. VAT registration number = 29AAACTS5678Q1Z0.
- Company Code Data (FI view): Reconciliation account = 160000 (Domestic Payables). Payment terms = 0002 (14 days 2% discount, net 30 days). Sort key = 001. Tolerance group – blank. Set withholding tax if applicable (we’ll skip for simplicity).
- Purchasing Data: Purchasing organization = 1000. Order currency = INR. Payment terms = 0002 (same). Inco terms = FOB (free on board). Schema group vendor = 01 (standard). Pricing date control = 1 (Order date). GR‑based invoice verification = tick (recommended). Auto‑evaluation GR settlement = blank. Delivery tolerance = 0% (no over‑delivery).
Consultant Tip: Always set GR‑based invoice verification for inventory materials. It forces the three‑way match and prevents paying for goods you haven’t received. For services, you might untick this and use service entry sheets.
2.2 Material Master (Transaction MM01) for Procured Items
Create material MAT‑RM‑001. Use Industry sector “M – Mechanical engineering”. We will build this material with all necessary views for procurement, inventory management, and accounting.
- Basic Data 1: Description = Aluminum Enclosure (for ProSwitch), Base Unit of Measure = PC (pieces), Material Group = 001. Division = 00.
- Purchasing view: Plant 1100. Purchasing group = 001 (our buyer group). Order unit = PC. Variable order unit = inactive. GR processing time = 2 days (for planning). Delivery tolerances: unlimited over‑delivery? Usually set 0% over‑delivery, 0% under‑delivery for strict control. We’ll set 0%/0%.
- Accounting 1 view: Valuation class = 7920 (Raw materials). Price control = S (Standard price). Standard price = 800 INR. Moving average price will follow. (Later we will buy at 850, creating a price difference that we will handle in invoice verification.)
- Plant Data / Stor. 1 (Plant 1100): Storage location = RM01 (Raw Material Store). We will create RM01 if not already present.
Also, create a second material for subcontracting: MAT‑RM‑002 – Powder Coating Service. This is a service material (material type DIEN) that we will use to represent the subcontracting operation. But for subcontracting scenario, the vendor provides service and we supply components. We’ll keep that subtle. We’ll create a raw material that we send out: MAT‑RM‑003 – Uncoated Enclosure, and the subcontracting PO will have the service item. We’ll detail that later.
2.3 Purchasing Info Record (Transaction ME11)
The info record links a vendor and a material, storing ordering information and the last purchase price. Create one for vendor 200001 and material MAT‑RM‑001 for purchasing org 1000 and plant 1100.
- Info type: Standard.
- General data: Vendor 200001, Material MAT‑RM‑001, Purchasing org 1000, Plant 1100.
- Purchasing organization data: Planned delivery time = 5 days. Purchasing group = 001. Standard quantity = 100 PC. Net price = 850 INR per 1 PC (this will be used as default in PO). Currency INR. Tax code = J1 (Input tax 18%).
- Conditions: You can also maintain the condition record directly in ME11 under “Conditions”. But usually you use VK11 (for purchasing conditions) or MEK1. We’ll create condition record for condition type PB00 (gross price). In MEK1, key combination “Vendor/Material” (table 016), enter vendor 200001, material MAT‑RM‑001, purchasing org 1000, plant 1100. Amount = 850 INR/PC, valid from today to 31.12.9999. Also create a delivery cost condition FRA1 (freight) if applicable.
If you also want to simulate a source of supply, create a Source List (ME01) for the material, listing vendor 200001 as a fixed source. This is optional but good for MRP.
2.4 Tax Configuration for Purchasing
For Indian GST on purchases, we need the input tax condition type (e.g., JINP for input tax). In standard, condition type JINP (Input tax) might be used. Create a condition record in VK11 for JINP with key combination “Country/Region/Vendor Tax Class/Material Tax Class”. Country IN, Region KA, Vendor tax class 1 (taxable), Material tax class 1, tax rate 18%. Ensure tax code J1 is assigned. This will be automatically determined in the PO if the vendor and material tax classifications are set correctly.
In the vendor master (purchasing data), set tax code J1 (or keep it blank to be determined). We’ll set vendor tax classification (in purchasing view) to “1 – Taxable”.
3. The Purchase Requisition – Where the Need is Born
Now that master data is ready, we can start the process. A production planner runs MRP and the system generates a purchase requisition for the Aluminum Enclosure because of a planned independent requirement. Or, a department manually creates a PR for office supplies. We’ll simulate both.
3.1 Manual PR Creation: ME51N
Transaction ME51N. Here you enter the document type NB (standard PR).
- Header: No account assignment at header – we’ll assign at item level later. Maintain delivery date (e.g., 20‑May‑2026) and plant 1100.
- Item 10: Material = MAT‑RM‑001, Quantity = 200 PC, Delivery date = 20.05.2026, Plant = 1100, Storage location = RM01. The account assignment category is blank if for stock material (valuation class takes care). The system will determine the purchasing group from the material master or the info record, and may propose the vendor 200001 if a source list or info record exists.
- If you want to assign a cost centre (e.g., for non‑stock items), set account assignment category = K (Cost centre) and enter the cost centre (e.g., 1000). For now, we leave it as stock material.
Save the PR. The system generates a number, e.g., 10000001. The status of the item is “N” (not processed). This PR is now ready for the buyer to convert into an RFQ or directly into a PO.
3.2 MRP‑Generated PR – The Automatic Way
In a realistic scenario, the material MAT‑RM‑001 is planned via MRP (material type ROH). We have a demand from a planned independent requirement (MD61) for 500 units of the finished product MAT‑IT‑001, and the BOM requires 1 PC of MAT‑RM‑001 per finished good. MRP run (MD01) calculates net requirement. Suppose current stock is 0, safety stock 50, then the system creates a PR for 550 pieces (500 + 50). The PR will have MRP controller as source of supply, and it will be visible in stock/requirements list (MD04). We will not re‑run MRP here, but note that the integration point is vital: the PR created by MRP already has the delivery date aligned with the production start date, and the system knows which vendor to propose from the source list.
4. Request for Quotation (RFQ) – Getting the Best Price
For high‑value materials, the buyer sends an RFQ to multiple vendors, collects quotations, and then does a price comparison. Let’s simulate a realistic bidding process for the Aluminum Enclosure. We want 500 pieces, and we have identified three potential vendors: TechSupply Inc. (200001), another vendor MetalCorp (200002), and PrecisionParts (200003). We’ll create vendor master records for the latter two quickly.
Create vendor 200002 and 200003 with similar FI and purchasing data. Then create RFQ.
4.1 Create RFQ: ME41
Transaction ME41. RFQ type = AN (standard RFQ). Enter purchasing organization 1000, purchasing group 001, RFQ date, deadline for quotation = 25‑May‑2026. Then enter the material MAT‑RM‑001, target quantity 500 PC, delivery date 15‑June‑2026. In the item overview, you can specify multiple vendors. For each vendor, the system will ask for the vendor number and the quotation deadline. Enter the three vendor numbers. Save the RFQ. The system generates a collective RFQ number, say 20000001. Now you can print or email the RFQ to the vendors.
4.2 Maintain Quotations: ME47
After receiving the quotes, you enter them in ME47. For each vendor, enter the quoted price, delivery time, and any terms. For instance:
- Vendor 200001: Price 850 INR/PC, delivery 5 days.
- Vendor 200002: Price 820 INR/PC, delivery 7 days.
- Vendor 200003: Price 870 INR/PC, delivery 3 days.
Save the quotations. Then use the price comparison tool in ME49 (or within ME47) to evaluate them side‑by‑side. You can create a comparison list and set the “adopt” flag for the best quotation. In our case, Vendor 200002 offers the lowest price but longer delivery; however, we might choose Vendor 200001 because it’s a known partner and the 5‑day delivery fits better. For this exercise, we select Vendor 200001’s quotation as the winner and mark it as “accepted”. The system then can directly create a PO from the quotation using ME21N with reference to the RFQ/quotation.
5. Purchase Order Creation – The Legal Commitment
Now we create a purchase order, either from scratch, from a PR, or from the accepted quotation. We will use the manual PR #10000001 as the source.
5.1 Create PO with Reference to PR: ME21N
Transaction ME21N. Choose document type NB (standard PO). Click on the “Create with Reference” button and enter the PR number 10000001. The system copies the material, quantity, plant, and delivery date. If a source list or info record exists, the vendor is proposed. We select Vendor 200001.
Review and fill header data:
- Purchasing organization: 1000, Purchasing group: 001, Company code: 1000.
- Currency: INR, exchange rate: 1.
- Payment terms: 0002 (from vendor master).
- Inco terms: FOB.
- Validity period: start today, end 30‑June‑2026.
- GR‑based invoice verification indicator: ticked.
In the item overview:
- Item 10: Material MAT‑RM‑001, quantity 200 PC, delivery date 20‑May‑2026, plant 1100, storage location RM01.
- Net price: The system will determine the price from the info record / condition record PB00. It shows 850 INR per PC → total 170,000 INR.
- If a freight condition FRA1 exists (e.g., 1% delivery charge), it will be added, making net value 171,700 INR.
- Tax condition JINP calculates 18% on the net value (if tax base includes freight) → tax amount = 30,906 INR.
- Gross PO value = 202,606 INR.
You can also add a delivery cost manually by going to the “Invoice” tab or using condition types. The PO pricing screen (Conditions button) shows the breakdown. If the vendor is entitled to a discount (e.g., RA01 – 2% discount for payment within 14 days), you can add it, but that is usually handled in invoice verification through payment terms, not as a condition. For now, we keep it simple.
Save the PO. System generates document number, e.g., 4500000010.
5.2 Release Strategy – When a PO Needs a Manager’s Nod
GlobalTech has a rule: any purchase order exceeding 100,000 INR must be approved by the Procurement Manager before it can be sent to the vendor. We will set up a simple release strategy.
In customizing (SPRO), under “Purchasing → Purchase Order → Release Procedure for Purchase Orders”, we define the release group, release codes, and strategy. But for this exercise, I’ll describe the outcome: after saving PO 4500000010, the system sets a release indicator “B” (blocked) and the output (print) is held. You need to release it in transaction ME29N. Enter the PO number, click Release. If you are the manager (with authorization), the PO status changes to “Released” and the output is generated. If not released, the PO cannot be printed or sent, and goods receipt might be blocked depending on configuration.
Hands‑on Exercise: If you have access, configure a simple release strategy with one release code and assign it to your user. Then create a PO above the limit and see the block. Release it and observe the document flow.
5.3 Output Determination – Sending the PO to the Vendor
Once released, output type NEU (Purchase Order Print) is triggered. Configured via NACE. The output condition record can send an email with PDF. In the PO, you can go to “Output” and manually trigger “Print preview”. This is a typical step in a paperless procurement process.
6. Goods Receipt – The Moment Inventory and Liability Appear
The vendor delivers 200 pieces of Aluminum Enclosure to our Bangalore plant. The warehouse clerk unloads, checks quantity, and posts a goods receipt in SAP. This is where MM meets FI big time.
6.1 Post Goods Receipt for Purchase Order: MIGO
Transaction MIGO. Select “Goods receipt” → “Purchase Order”. Enter PO number 4500000010. The system copies the open quantity. Check the item: movement type 101 (GR for purchase order). Quantity 200 PC, storage location RM01. If a quality inspection is required, movement type 103 (GR to quality inspection) would be used, followed by 105 (transfer to unrestricted). We’ll assume direct posting to unrestricted.
Click “Post”. The system creates an MM document (e.g., 5000000010) and an FI document. Let’s look at the accounting entry.
- Debit: Inventory – Raw Materials (GL 140000) = 200 PC × standard price 800 INR = 160,000 INR (we use standard price control, so GR is posted at standard price).
- Credit: GR/IR clearing account (GL 210000) = same amount 160,000 INR.
Wait, why 160,000? Because we set the material’s standard price to 800. But our PO price is 850. That difference (50 INR per PC, total 10,000 INR) is a purchase price variance that will be captured later during invoice verification. However, at goods receipt, standard price materials always debit inventory at standard cost and credit GR/IR at the PO price? No: In standard SAP, for materials with price control S, the goods receipt posts the inventory at the standard price and the GR/IR is posted at the PO price. The difference is automatically posted to a price difference account (PRD key in OBYC). But depending on configuration, you might see the GR/IR at standard price and the variance posted upon invoice receipt. In many standard systems, for price control S, GR posts: Dr Inventory (standard), Cr GR/IR (PO price), and the difference goes to a price difference account. Let’s check: In OBYC, transaction key BSX (inventory posting) uses valuation class 7920 → GL 140000. WRX (GR/IR clearing) uses valuation class? Actually WRX is determined by valuation grouping code and account grouping. Typically, the GR/IR clearing account is posted with the PO price. The price difference account (PRD) is hit for the variance. So the entry is: Dr Inventory 160,000 (standard), Cr GR/IR 170,000 (PO price), Dr Price Difference 10,000. The net effect on balance sheet is correct. Some configurations defer the variance to invoice receipt. We’ll see that shortly.
To simplify, I’ll assume the entry: Dr Inventory 170,000, Cr GR/IR 170,000, and a separate entry for price difference only at invoice. That is also possible when the PO price equals standard price? No. Let’s keep it real: we are in a standard cost environment, so there is a variance. I’ll show the most common automatic postings. We will analyse the FI document in MIGO by clicking “Doc. info”. You will see the GL accounts. It’s important to know that the GR/IR clearing account is automatically determined through transaction key WRX, and it’s crucial for the three‑way match.
6.2 Quality Inspection – Movement Type 103/105
If the material is subject to inspection, you would set the inspection type in the material master QM view. Then at GR, you post with movement type 103 (to quality inspection stock). The stock is in inspection, not available for use. After the quality technician records the usage decision in QM, you post movement type 105 to transfer to unrestricted stock. The accounting entry is identical, but the stock type changes. This is essential in industries like pharma or automotive. For our raw material, we may keep it simple, but in real life, a visual inspection occurs. We can mention this as a scenario variation.
7. Invoice Verification – The Three‑Way Match and the Real Financial Entry
TechSupply sends us an invoice for the delivered goods. The invoice amount is 200 PC × 850 INR = 170,000 INR, plus 18% GST = 30,600 INR, total 200,600 INR. But wait – earlier our PO tax was calculated on 170,000 + freight? We didn’t add freight in the PO for simplicity. Let’s assume the PO net price is 170,000, tax 18% = 30,600, gross 200,600. The invoice matches. We’ll post it.
7.1 Enter Invoice: MIRO
Transaction MIRO. Enter the following:
- Invoice date: today, posting date: today, reference: Vendor’s invoice number INV‑2026‑001.
- Choose transaction “Invoice” (not credit memo).
- Enter the PO number 4500000010. The system pulls the goods receipt data, showing 200 PC received, quantity to be invoiced 200. Verify the amount: the proposed amount is from the PO net price (170,000). Tax amount: manually enter 30,600 in the tax field, with tax code J1. The total should be 200,600.
- Check the “Balance” field. It should be zero.
If the invoice amount differs from the PO by a small percentage, the system may post it automatically if within tolerance limits (configured in OMR6). If the variance is large, the invoice will be blocked for payment. In our case, we assume an exact match, so we can post.
Click “Post”. The system creates an FI document. Let’s see the journal entry.
- Debit: GR/IR clearing account (210000) = 170,000 INR (this clears the credit from goods receipt)
- Debit: Input Tax (GL 230000) = 30,600 INR
- Credit: Vendor account (Reconciliation 160000) = 200,600 INR
Now the GR/IR account is balanced (170,000 credit from GR, now 170,000 debit). The net vendor liability is 200,600.
But what about the price variance? Since PO price (850) is higher than standard cost (800), the goods receipt already posted a price difference? In the scenario where inventory was debited at standard and GR/IR credited at PO price, the GR/IR account already holds the PO price. So the invoice clearing matches exactly, and the price difference sits in the price difference account. If instead GR/IR was posted at standard price, then the invoice would clear the standard amount and the price difference account would be hit during invoice posting. Both are valid. The takeaway is that the combination of BSX, WRX, PRD, and invoice verification ensures that inventory is valued correctly and the variance is captured for profitability analysis. If you are using moving average price, the inventory value is adjusted upon invoice receipt.
7.2 Handling Invoice Variance – Blocked Invoice
Let’s simulate a real‑world problem: The vendor’s invoice price is 860 INR instead of 850, due to a surcharge they added. You enter MIRO, enter the invoice amount 172,000 (200×860), plus tax 30,960. The system detects a price variance of 2,000 INR. Depending on tolerance limits, the invoice might be posted but blocked for payment, requiring manual release (transaction MRBR). In MRBR, the accounts payable clerk reviews and either accepts the variance (posts to price difference account) or rejects and asks vendor for a credit note. This is the essence of the three‑way match control.
8. Payment – Closing the Vendor Liability
After verifying the invoice and ensuring no blocks, it’s time to pay. SAP supports manual payment (F-53) or automatic payment program (F110). We’ll run F110 for a single vendor.
8.1 Automatic Payment Program: F110
Transaction F110. Parameters:
- Run date: today, Identification: “PAY-TECHS”
- Company code: 1000, Payment method: T (Bank transfer), Posting date: today, Document date: today
- In the “Free selection” tab, enter vendor 200001
- In the “Additional Log” tab, tick “Payment summary” and “Payment list”
- Execute the proposal. The system selects the open invoice item of 200,600 INR. It calculates any cash discount – payment terms 0002: 2% discount if paid within 14 days. Our payment date today is within 14 days? If yes, discount 2% of 200,600 = 4,012. Then the payment amount becomes 196,588. Let’s assume we are within discount period. The proposal shows discount amount.
- Once you confirm the proposal, schedule the payment run. The system creates a payment document: Dr Vendor 200,600, Cr Bank 196,588, Cr Cash Discount Received (GL) 4,012.
Now the vendor’s balance is zero. The Procure to Pay cycle is complete.
9. Full Scenario 1: Scen‑MM‑01 – Standard Domestic Procurement (Stock Material)
Let’s condense the whole flow into a single log for clarity. This is your “golden reference” to walk through with a colleague.
- Precondition: Material MAT‑RM‑001 standard price 800 INR, valuation class 7920, vendor 200001 info record price 850 INR. Stock 0.
- Step 1 – Purchase Requisition (ME51N): Manual PR #10000001, qty 200 PC, delivery 20‑May‑2026, plant 1100, storage loc RM01.
- Step 2 – Purchase Order (ME21N): Convert PR to PO #4500000010, vendor 200001, net price 170,000, tax 18% = 30,600, gross 200,600.
- Step 3 – Release (ME29N): Release PO (if strategy active).
- Step 4 – Goods Receipt (MIGO): Post GR for 200 PC, movement 101. MM doc #5000000010, FI doc #1400000010: Dr Inventory (BSX) 160,000 (std), Dr Price diff (PRD) 10,000, Cr GR/IR (WRX) 170,000.
- Step 5 – Invoice Verification (MIRO): Invoice #INV‑2026‑001, amount 170,000 + tax 30,600 = 200,600. FI doc #1500000010: Dr GR/IR 170,000, Dr Input Tax 30,600, Cr Vendor 200,600.
- Step 6 – Payment (F110): Payment run clears vendor with discount. FI doc #1600000010: Dr Vendor 200,600, Cr Bank 196,588, Cr Discount received 4,012.
- Result: Inventory valued at 160,000 (standard), price difference 10,000 in P&L, vendor cleared.
10. Full Scenario 2: Scen‑MM‑02 – Subcontracting with Material Provision
GlobalTech sends the Aluminum Enclosures to an external vendor for powder coating. The coated enclosure becomes a different material, MAT‑IT‑001‑C (Coated Enclosure). This is a classic subcontracting process.
Master Data Setup:
- Create material MAT‑IT‑001‑C as a raw material (or semi‑finished), valuation class 7920, standard price 1,000 INR. In its BOM, component MAT‑RM‑001 with quantity 1.
- Create a subcontracting info record for the service vendor 200004 (CoatingPro) and the service material (we can use a service material MAT‑SRV‑001 – Powder Coating Service). The info record for subcontracting (category “L”) links the vendor to the material to be provided and the service to be performed. In ME11, choose info category “Subcontracting”. Enter vendor 200004, material MAT‑IT‑001‑C (the finished assembly we want back), plant 1100. Then maintain the service price, e.g., 150 INR per piece. The components are derived from the BOM of MAT‑IT‑001‑C.
Process Walkthrough:
- Create subcontracting PO (ME21N): Document type NB, vendor 200004, item category “L” (subcontracting). Enter material MAT‑IT‑001‑C, quantity 100 PC, delivery date. The system explodes the BOM and displays the components to be provided. Price: 150 INR per piece (service). Save PO #4500000020.
- Goods Issue of Components to Subcontractor (MIGO_GI, movement 541): Post a goods issue from our unrestricted stock (RM01) to the subcontractor stock. Use MIGO → Transfer posting → “To subcontractor”. Enter the PO number, system proposes components and quantities. Post. The material moves from our unrestricted to subcontractor inventory (a special stock). Accounting entry: Dr Consumption (or COGS) account (GBB-VBR) Cr Inventory. This is a cost to us.
- Goods Receipt of the Coated Enclosure (MIGO, movement 101 for subcontracting PO): When the vendor returns the coated enclosures, we post GR against the PO. The system automatically consumes the components from subcontractor stock and posts the receipt of the finished assembly. The FI entry: Dr Inventory (coated) 100,000 (100 PC × standard 1,000), Cr GR/IR 15,000 (service cost), and the component consumption was already posted, so the assembly absorbs the material cost as part of its standard cost? Not exactly; in subcontracting, the cost of components + service is captured. Typically, the GR of the assembly posts the components’ value as a offset to consumption. So the end result is the assembly is in stock at standard cost, and the service cost is debited via GR/IR. The difference is a price variance. It’s a bit complex, but the key is that the BOM drives the component consumption, and the PO service price is the value flowing through GR/IR.
- Invoice Verification: Same as standard, MIRO for PO 4500000020, invoice for service cost 15,000 + tax. The GR/IR is cleared.
- This scenario proves you understand material provision and external processing – a must for manufacturing consultants.
11. Full Scenario 3: Scen‑MM‑03 – Consignment Procurement
In consignment, the vendor stocks goods at our plant, but we only become liable when we consume or transfer them to our own stock. This is common for high‑volume consumables. GlobalTech uses consignment for packaging material MAT‑PKG‑001 (cardboard boxes).
Setup: Create consignment info record (ME11, info category “Consignment”) for vendor 200001 and material MAT‑PKG‑001, price 10 INR per PC. Also, set up consignment storage location C001 and extend material to it.
Flow:
- Create consignment PO (ME21N): Item category “K” (consignment). No price, no invoice. Vendor 200001, material MAT‑PKG‑001, quantity 1000 PC, delivery to consignment store. The PO is only used for the vendor to know what to deliver. Save PO.
- Goods Receipt consignment (MIGO, movement 101 for consignment): Posted to consignment stock at location C001. No FI document – the stock is owned by the vendor.
- Consumption / Transfer to own (MIGO, movement 411 K): When we need boxes, we transfer 500 PC from consignment to our own unrestricted stock. The system automatically creates a material document and also a settlement document that posts the liability and consumption. FI entry: Dr Inventory (or expense) 5,000 INR, Cr Vendor (consignment liability) 5,000 INR. A corresponding “consignment invoice” is generated (settlement via MRKO).
- Settlement (MRKO): Run MRKO to create regular invoices from consignment settlements. Then pay via F110.
This scenario shows you can manage vendor‑owned inventory without a PO invoice each time. Essential for lean supply chains.
12. Full Scenario 4: Scen‑MM‑04 – Service Procurement with Service Entry Sheet
GlobalTech hires a maintenance contractor for annual machine servicing. The service is ordered via a service PO, accepted through a service entry sheet, and then invoiced.
Master Data: Service master record (AC03) for service “MACHINE-SERVICE”. Assign service number. Create info record for vendor 200005 and service with price 50,000 INR per activity unit “AU” (each).
Process:
- Create service PO (ME21N): Document type NB, item category “D” (service). Enter a short text, then go to the “Services” tab and specify the service number, quantity 1, price 50,000. Account assignment category “K” (cost centre) or “F” (order). Save PO.
- Service Entry Sheet (ML81N): Once the service is performed, a user enters an entry sheet against the PO, confirming the quantity delivered. The entry sheet must be accepted. Posting the entry sheet updates the PO history and creates an FI document for the accrual: Dr Expense (cost centre) 50,000, Cr GR/IR (service) 50,000.
- Invoice Verification (MIRO): Same as standard, but the system references the entry sheet. You can only invoice up to the accepted quantity. The GR/IR is cleared.
- Payment: As before.
Service procurement is one of the most common areas where MM consultants get stuck because they forget the entry sheet or misconfigure the account assignment. We covered it here, so you never will.
13. Account Determination Deep Dive – The OBYC Magic
The automatic postings that connect MM to FI are controlled by transaction OBYC. You must understand these keys to troubleshoot any FI‑MM integration problem.
- BSX – Inventory posting: Debits or credits the inventory account upon goods movement. For our raw material, BSX mapping based on valuation class 7920 points to GL 140000.
- WRX – GR/IR clearing: Used during goods receipt and invoice receipt to temporarily hold the liability until invoice is matched. For the same valuation grouping, WRX points to GL 210000.
- PRD – Price differences: Captures the difference between PO price and standard price at goods receipt, or at invoice receipt if configured. Points to GL 620000 (Cost of goods sold offset) or a separate variance account.
- GBB – Offsetting entry for inventory postings: When you do a goods issue for consumption, GBB determines the offset account (expense). For example, GBB-VBR (consumption for subcontracting) might point to a consumption account.
- KON – Consignment settlement: Used when settling consignment liabilities.
- FR1, FR3 – Freight clearing: For inbound delivery costs.
To see the actual account assignments, run OBYC in your system. Double‑click on “BSX”, enter chart of accounts INT1, and you’ll see a table with valuation grouping codes (valuation modifier) and account numbers. The valuation grouping code is derived from the valuation class and the account grouping (if using split valuation). This is where an MM consultant’s life gets real. You must coordinate with the FI team to ensure these accounts exist and are correctly defined in the chart of accounts.
14. Integration Checkpoints – Where MM Meets FI, SD, and PP
P2P is not an island. Here are the exact touchpoints you must memorise:
- MM ↔ FI: Every goods receipt and invoice verification posts to FI. Account determination in OBYC is the bridge.
- MM ↔ PP: MRP triggers purchase requisitions. Production orders create reservations and automatic goods issues when confirming operations. Subcontracting in PP also relies on MM components.
- MM ↔ SD: Third‑party sales (as seen in O2C) create a purchase requisition that becomes a PO. Consignment sales use similar logic. Also, returns to vendor (movement 122) impact both MM and SD credit memos.
- MM ↔ QM: Inspection lot creation at goods receipt triggers quality inspection processes before stock becomes available.
- MM ↔ WM: Goods receipt can create transfer requirements in Warehouse Management if integrated.
Understanding these connections transforms you from a module‑specific user into a solution architect.
15. Troubleshooting Common Procure to Pay Issues
Real projects are full of surprises. Here are the top five P2P headaches and how to fix them:
- No price determined in PO: Check info record conditions (MEK2) – maybe the validity period is expired or the purchasing org/plant is wrong. Also ensure the condition type PB00 has a record. Look at the pricing procedure in SPRO, and verify the schema group of the vendor and the purchasing organization.
- GR blocked due to “overdelivery” tolerance: The vendor delivered 220 PC against a PO of 200, and you set the overdelivery tolerance to 0%. Either increase the tolerance in the material master purchasing view, or reject the excess delivery and post GR for 200. Use MIGO and adjust quantity.
- Invoice blocked for payment (status “B”): Check MRBR. The system has a variance block. Inspect the log (MRKO?). The variance can be price, quantity, or schedule. Resolve by either accepting the variance (manual release) or reversing the invoice and entering a credit memo. Never ignore blocked invoices; they break vendor relationships.
- GR/IR account not clearing: Run T‑code MB5S (display GR/IR balance). If the account balance is not zero after invoice, you likely have a quantity difference or a wrong invoice reference. Investigate with ME2N (PO history). Use MR11 to maintain GR/IR clearing manually if allowed, but understand the root cause first.
- Wrong account assignment for expense PO: The expense hit a wrong cost centre. In MIRO you can change the account assignment before posting if the PO was set up with account assignment category K. But if the PO was saved without account assignment, you’ll face an error. Always double‑check cost objects before releasing the PR.
16. Consultant Wisdom – Best Practices and Pitfalls from the Field
After multiple full‑cycle implementations, here’s what separates top consultants from the rest:
- Never skip the GR‑based invoice verification flag for stock items. It protects your company from paying for goods not received. I’ve seen a client lose lakhs because this was unticked, and invoices were paid based on PO alone.
- Define clear release strategies early. Don’t make every PO go through five levels of approval. Match it to the company’s delegation of authority. Use classification to make it flexible.
- Tax configuration must be tested for every combination. A missing tax condition record for a new plant or vendor tax classification will cause invoice verification to fail. Create a tax determination matrix and test it.
- Use the purchasing info record as your single source of truth. Never hard‑code prices in the PO. Update the info record regularly, and use scales for quantity discounts. This automates pricing and eliminates manual errors.
- Train users on MRBR before go‑live. The AP team must know how to release blocked invoices; otherwise, your vendor payments will stall, and you’ll get angry calls from procurement.
- Leverage consignment and subcontracting where it makes business sense. Don’t over‑complicate. Consignment is perfect for vendor‑managed inventory of fast‑moving consumables. Subcontracting is ideal for outsourced processes. Understand the business need first, then configure.
- Always test the entire cycle from PR to payment with a real vendor master and a real material. Walk the FI controller through the journal entries. That’s how you earn trust.
17. Interactive “Try It Now” Checklist
Open your SAP GUI and follow this checklist to cement the P2P flow in your muscle memory:
- Create vendor 200001 and material MAT‑RM‑001 (or use your own). Create purchasing info record with net price 850 INR.
- Create a manual PR for 200 pieces (ME51N).
- Create PO from PR (ME21N). Observe pricing. If release strategy active, release it.
- Post goods receipt (MIGO) for the full quantity. Note the MM and FI documents. Analyze the accounting entry using the “Doc. info” button.
- Create vendor invoice (MIRO) referencing the PO. Post and check the FI document.
- Run payment program (F110) for that vendor. Clear the open item.
- Now, simulate a price variance: Create another PO for 50 pieces but with PO price 900 INR. Post GR, then enter invoice with price 920. See the blocked invoice in MRBR and release it after accepting the variance.
- Set up a subcontracting scenario with BOM explosion, issue components, receive finished assembly, and do invoice.
- Set up a consignment material and go through goods receipt, transfer to own, settlement (MRKO).
- Celebrate – you just touched MM, FI, and a bit of PP and QM in one session.
18. Final Thoughts – From Purchase to Financial Control
Procure to Pay is the foundation of cost control and supply chain efficiency. If you master the end‑to‑end flow – not just the transaction codes, but the financial impact, the account determination, and the real‑world variations – you become the person that the project manager calls when things go wrong and the person the CFO trusts. This article gave you the concrete data, the exact scenarios, and the diagnostic skills. Now it’s your turn to reproduce it, break it, fix it, and make it your own.
Up next in the series: Record to Report (FI) – where we will close the books, run financial statements, and see how all the previous transactions roll up into the Profit & Loss and Balance Sheet.
Keep building, keep questioning. A real consultant never stops learning.
– FreeLearning365, in tech partnership with @techbook24

0 Comments
thanks for your comments!