🔁 Procure-to-Pay (P2P) — Interactive Walkthrough

Complete P2P cycle with real SAP fields, tooltips on every field, mandatory/optional flags, and step-by-step instructions to follow in your real SAP system. Practice in browser → execute identical steps in IDES → verify results.

✓ Optional fields hidden — showing only mandatory fields. Uncheck to see all fields again.

Step 1 — Create Purchase Requisition (PR)

A Purchase Requisition is an INTERNAL document asking "we need this material." No commitment to a vendor yet. Created manually or auto-generated by MRP. T-code: ME51N

📋 PR Header

If auto, system picks vendor from source list

📦 PR Line Item

Blank = goes to inventory. K = direct expense to cost center.
Material number (must exist in MARA)
Can be left blank; filled at GR time
Preselect vendor; or let buyer decide later

📊 What happens when you save

  • System assigns PR number (e.g. 1000000123)
  • Row written to EBAN table (Purchase Requisition)
  • PR status: open (released yet)
  • If release strategy active and PR value > threshold → goes into release queue
  • No FI document yet (PR is not financial commitment)

🎯 Try this in real SAP

  1. Open ME51N
  2. Header: Pick Document Type (NB)
  3. Line: Material M-100, Quantity 1000, Plant 1100, Date future, Purch Group 001
  4. Save (Ctrl+S) — note the PR number

✅ Verify result in real SAP

  1. ME53N — Display your PR number; should show all fields
  2. SE16N → EBAN — Find your PR row in the DB table
  3. ME5A — Open PR list (filter by your Purch Group)

Step 2 — Create Purchase Order (PO)

The PO is a formal commitment to the vendor. Can be created manually, from PR, or from contract. T-code: ME21N (or ME59N auto-convert PR→PO)

📋 PO Header

Must be extended to this Purch Org (LFM1 row exists)
Defaults from vendor master
Defaults from vendor master; can override

📦 PO Item (Line 10)

Defaults from info record/material
PKR per unit

📊 What happens when you save

  • PO number assigned (e.g. 4500001234)
  • Rows written: EKKO (header), EKPO (items), EKET (schedule lines)
  • If release strategy active → status: "Locked, not released"
  • No FI posting yet (PO is commitment, not transaction)
  • If output is configured → PO ready to be printed/emailed to vendor

🎯 Try this in real SAP

  1. Open ME21N
  2. Document type NB
  3. Vendor: 100001, Purch Org: PSPK (or your Purch Org), Purch Group: 001
  4. Add line: Material M-100, Plant 1100, Qty 1000, Net Price 50 PKR
  5. Save — note PO number

✅ Verify result

  1. ME23N — Display PO; check all fields
  2. SE16N → EKKO — PO header in DB
  3. SE16N → EKPO — PO line(s) in DB
  4. ME2L — PO list per vendor (find your new PO)

Step 3 — Release PO (if release strategy active)

If your client has release strategy configured (e.g. PO > 1L needs Manager approval), the PO is "locked" until released. Approvers use T-code ME29N (individual) or ME28 (mass release).

✅ Release codes example

PO Value (PKR)Approver levelRelease code
< 1,00,000Buyer (auto-released)
1L – 5LProcurement Manager01
5L – 50LProcurement Head02
> 50LCFO03
If your scenario doesn't use release strategy
You can skip this step. PO is "open" and ready for GR immediately. Click "Next step →"

🎯 Try in real SAP (if release config exists)

  1. Open ME29N with your PO number
  2. Click "Release" button (green flag) for your release code
  3. Save — PO status changes to "Released"

✅ Verify

  1. Open PO via ME23N — status should be "Released"
  2. Output/print enabled (if configured)

Step 4 — Goods Receipt (GR) — Movement Type 101

Vendor delivers. Receive goods into inventory via T-code MIGO. This creates a material document AND an FI posting.

📋 GR Header (MIGO)

📦 GR Item

From PO line

📊 What happens when you post

  • Material document created (e.g. 5000001234)
  • Rows written: MKPF (header), MSEG (lines)
  • Stock updates: MARD qty up, MBEW value up
  • FI document created automatically via OBYC:
    Dr Inventory (BSX → G/L 200000)    ₨50,000
    Cr GR/IR Clearing (WRX → 191100)   ₨50,000
  • PO history updated: EKBE gets row for the GR
  • Open PO quantity reduces by received qty

🎯 Try in real SAP

  1. Open MIGO
  2. Top-left: select "Goods Receipt" + "Purchase Order"
  3. Enter PO number
  4. Movement type 101
  5. On the item tab: confirm qty, Plant, SL
  6. Tick the OK box
  7. Click "Check" — system validates
  8. Click "Post" — material doc number appears

✅ Verify result

  1. MB51 — Material document list, find your doc
  2. MMBE — Stock for M-100 in Plant 1100 — should show new qty in unrestricted
  3. MB03 — Display material document; click "Accounting Documents" button
  4. FB03 — FI document — confirm Dr Inventory / Cr GR/IR posted
  5. ME23N on PO → Item History tab → GR row visible

Step 5 — Invoice Verification (LIV) — MIRO

Vendor sends invoice. Verify it against PO + GR (3-way match). T-code: MIRO

📋 Invoice Header

Total amount as on vendor invoice (PKR)

📦 Invoice Items

After entering PO number, system pulls in PO lines automatically. You match what was invoiced against what was received.

ItemMaterialPO QtyGR QtyInvoice QtyNet price
10M-1001000100050

📊 What happens when you post

  • Invoice document created (e.g. 5100001234)
  • Rows written: RBKP (header), RSEG (items)
  • FI document created via OBYC:
    Dr GR/IR Clearing (191100)   ₨50,000
    Cr Vendor (160000 - Tata)    ₨50,000
  • Vendor open item appears: BSIK row created
  • PO history updated: EKBE gets IV row
  • 3-way match check: PO ✓ GR ✓ Invoice ✓ — block raised if mismatch

🎯 Try in real SAP

  1. Open MIRO
  2. Top: Company Code dialog → confirm
  3. Fill header: invoice date, posting date, amount, tax code
  4. Reference type: Purchase Order/Scheduling Agreement → enter PO #
  5. System pulls PO lines; verify qty/price
  6. Balance must be zero (green light)
  7. Click "Simulate" then "Post"

✅ Verify

  1. MIR4 — Display invoice doc
  2. FB03 — FI document, see Dr GR/IR / Cr Vendor
  3. FBL1N — Vendor line items; open item should appear
  4. ME23N on PO → PO history → IV row visible

Step 6 — Payment

FI pays the vendor. Either automatic via F110 (payment run) or manual via F-53.

💳 F110 — Automatic Payment Run

In real systems, AP team runs this on a schedule (e.g. weekly). Steps:

  1. Maintain parameters — Run date, identification, Company Codes, Payment methods, Next payment run date, Vendors
  2. Proposal — System suggests which open items to pay based on payment terms / due dates
  3. Review proposal — Approve or exclude items
  4. Payment run — System creates FI documents + payment medium (cheque, EFT file, etc.)

📊 What happens when payment posts

  • FI document created:
    Dr Vendor (160000 - Tata)    ₨50,000
    Cr Bank (100000)             ₨50,000
  • BSIK row (open vendor item) MOVES to BSAK (cleared vendor item)
  • Vendor balance now zero for this invoice
  • Bank balance decreases by paid amount
  • Payment medium generated (cheque, EFT file, bank transfer)

🎯 Try in real SAP (manual F-53)

  1. Open F-53
  2. Posting date, Period, Document type: KZ
  3. Bank: G/L account (e.g. 100000)
  4. Vendor: 100001, Amount: 50,000 PKR
  5. Click "Process open items" — system shows your invoice
  6. Activate the invoice line; balance = zero
  7. Save

✅ Verify

  1. FBL1N — Vendor line items; invoice should be in "Cleared" status
  2. FBL3N — G/L 160000 (vendor recon) — see debit entry
  3. FBL3N — G/L 100000 (bank) — see credit entry
  4. SE16N → BSAK — find your cleared vendor item

🎉 P2P Cycle Complete!

What you've accomplished
You've walked through the entire P2P cycle: Need recognized (PR) → Vendor commitment (PO) → Goods received (GR) → Invoice verified (LIV) → Payment made. This is the workflow every SAP MM transaction follows.

Summary of all entities/documents created

StepT-codeDocumentFI Impact
1. Create PRME51NPR 1000000123None (commitment-tracking optional)
2. Create POME21NPO 4500001234None (commitment)
3. Release POME29NNone
4. Goods ReceiptMIGO 101Mat doc 5000001234
FI doc 4900000123
Dr Inventory / Cr GR/IR
5. Invoice VerificationMIROInv doc 5100001234
FI doc 5100000456
Dr GR/IR / Cr Vendor
6. PaymentF110 or F-53FI doc 6000000789Dr Vendor / Cr Bank

What's next?

Field details

What it's for

Mandatory?

Changeable after save?

Where used in SAP

Impact of this choice