Setup Step 18 — BP Master Data Configuration

REFERENCE Layer 5 · owned by FI/Basis ⏱️ ~20 min BP
← Previous
Step 17: PP Setup for Production
Next →
Step 19: Controlling Area & Cost Centers

🎯 Why this setting exists

In S/4HANA, Business Partner (BP) is mandatory — you can no longer create vendors via XK01/MK01. Every supplier you will ever buy from goes through the single BP transaction. BP configuration controls the number ranges a partner gets, which roles it can take (Supplier, Customer, Employee, Bank…), and the CVI (Customer/Vendor Integration) that auto-writes the classic LFA1/LFB1/LFM1 tables MM and FI still read. Without a correctly configured BP, a vendor either can't be created or saves but can't be used on a PO.

This is normally FI/Basis consultant work, but an MM consultant must understand it: you create and use vendors every single day, and the supplier roles decide what data exists for the buyer versus for accounts payable.

💡 Easy example

Mughal Steel is created once as a Business Partner — one record, not two. Then you add roles to that single record: So both the AP clerk and the buyer reference one consistent supplier record — Mughal Steel's address is never out of sync between Finance and Purchasing, because it lives in one BP.

👉 For the full click-by-click creation (vendor and customer) with every field explained, see Create a Business Partner. Pick roles by their description ("Vendor (Finance)", "Vendor (Purchasing)") — the underlying codes (commonly FLVN01 = Finance, FLVN02 = Purchasing) can vary by system/version.

🔗 How this connects to everything else

BP master data sits at the master-data layer — every procurement scenario in the academy needs a vendor, and every vendor is a BP. Here's the web of settings and modules that hang off it, useful whether you configure it or just discuss it with the FI/Basis consultant who does.

⬆️ Depends on (must exist first)

  • Step 1 — Company Code: the FLVN01 (Finance) role stores company-code-specific vendor data (recon account, payment terms) — so the CC must exist first.
  • Step 8 — Purchasing Organization: the FLVN02 (Purchasing) role stores purch-org-specific data (order currency, terms) — so a purch org must exist.

⬇️ Enables (what this unlocks)

  • Creating the vendors used in EVERY scenario — e.g. MUGHAL21 in Scenario 1.
  • Step 14 — Customer/Vendor for STO: the plant's internal customer/vendor are BPs too.
  • Every PO, info record, source list and contract — all reference a vendor BP.

🧩 Who owns it & why MM cares

FIMM FI/Basis configures BP number ranges + CVI. But MM creates and uses vendors daily — you must understand the roles: General (000000: name/address), Supplier (Fin. Accounting) (recon account, payment terms), and Supplier (Purchasing) (order currency, terms).

🔮 Links to other modules (now & later)

  • FI The Supplier (Fin. Accounting) role drives the vendor reconciliation account and payments (F-53, MIRO open items in LFB1/BSIK).
  • MM The Supplier (Purchasing) role supplies the purchasing data (currency, terms, Incoterms) the buyer needs on the PO (LFM1).

🔧 Configuration — fields & steps

BP · BUCF · BUC2 · SM30 view V_TBC001/V_TBD001 · SPRO → Cross-Application Components → SAP Business Partner

📚 Why an MM consultant should KNOW BP config (even if you don't DO it)
BP configuration controls what number ranges are used (e.g. vendor 1000000-1999999, customer 2000000-2999999), what roles can be added, the synchronization with classic LFA1/KNA1 tables via CVI, and which grouping = which number range = which kind of partner.

📋 BP Configuration — sub-steps

18A. BP Number Ranges — BUCF

What: Define number range intervals for Business Partners — different ranges for different BP types.

SPRO Path: Cross-Application Components → SAP Business Partner → Business Partner → Basic Settings → Number Ranges and Groupings → Define Number Ranges

Action:

  1. Run BUCF
  2. Click Change Intervals
  3. Add intervals (or use existing):
No.FromToExternal flagFor
0119999999☐ InternalDefault internal numbering (most common)
02AZZZZZZZZZZ✓ ExternalExternal alphanumeric (for migrating data)
VK10000001999999☐ InternalCustom range for vendors (Pakistani example)
KD20000002999999☐ InternalCustom range for customers

Save → Local Object.

18B. BP Groupings + Number Range Assignment — BUC2

What: Grouping = which type of BP gets which number range. Each grouping links to ONE number range and defines whether numbers are internal/external + same as customer/vendor.

SPRO Path: Cross-Application Components → SAP Business Partner → Business Partner → Basic Settings → Number Ranges and Groupings → Define Groupings and Assign Number Ranges

Action:

  1. Run BUC2
  2. Click New Entries
  3. Define groupings:
GroupingDescriptionNumber RangeExternalSame Number Flag
BPG1BP General (default)01☐ (BP # ≠ customer/vendor #)
BPVKPakistani VendorsVK✓ (BP # = vendor # in LFA1)
BPKDPakistani CustomersKD✓ (BP # = customer # in KNA1)
BPEMEmployeesEM

Save → Local Object.

💡 "Same Number" flag is critical — when checked, BP # matches LFA1's LIFNR (vendor) or KNA1's KUNNR (customer). Makes data migration cleaner.

18C. BP Roles Definition — SPRO IMG (no T-code)

What: Defines which roles exist (Vendor, Customer, Employee, Bank, etc.). SAP delivers ~30 standard roles. You can create custom Z-roles (your IDES had YTM-VENDOR, YTM-CUSTOMER, etc.).

SPRO Path: Cross-Application Components → SAP Business Partner → Business Partner → Basic Settings → Business Partner Roles → Define BP Roles

Standard Vendor Roles (you'll see these in the BP dropdown):

RoleDescriptionPurpose
000000 (BP General)Business Partner GeneralBase role — identity, address — ALWAYS required first
FLVN00Supplier (generic)Activates supplier capability — often skipped in S/4HANA
FLVN01 / "Vendor (Finance) (New)"Supplier (Financial Accounting)CC-specific data: recon account, payment terms
FLVN02 / "Vendor (Purchasing)"Supplier (Purchasing)Purch Org-specific: currency, Incoterms, Purch Group

Standard Customer Roles (same pattern):

FLCU00Customer (generic)
FLCU01Customer (FI)
FLCU02Customer (SD)
18D. CVI (Customer/Vendor Integration) — SM30 view V_TBC001 / V_TBD001

What: CVI ensures that when you create a BP, the system AUTO-creates the corresponding entry in classic LFA1 (vendor) or KNA1 (customer) tables. Without CVI, your BP exists but the vendor/customer record doesn't — POs would fail.

This is CRITICAL in S/4HANA — without it, MM/SD don't work because they still query LFA1/KNA1.

Configuration:

  1. Run SM30
  2. For Customer integration: View V_TBC001 → Maintain
  3. Add row: BP Grouping BPKD → Customer Account Group KUNA (or your customer group)
  4. For Vendor integration: View V_TBD001 → Maintain
  5. Add row: BP Grouping BPVK → Vendor Account Group LIEF (or your vendor group)
  6. Save

Sync direction (V_T100C or BUCSC):

SettingEffect
BP → Customer/Vendor sync ACTIVERecommended — when you save BP, customer/vendor auto-created in LFA1/KNA1
BP → C/V sync INACTIVEBP saves but no LFA1/KNA1 record → POs fail with "vendor not found"
Customer/Vendor → BP syncReverse direction — used during S/4HANA conversion from ECC

📚 Source: Verified against saplogisticsexpert.com + SAP Community Complete BP Config Guide

18E. Field Status per BP Role (optional)

What: Controls which fields are required, optional, or hidden when maintaining each BP role.

SPRO Path: Cross-Application Components → SAP Business Partner → Business Partner → Basic Settings → Field Groupings → Configure Field Attributes per BP Role

For learning, accept SAP defaults. Customize only in real projects where the business demands specific field mandatories.

18F. Payment Terms — OBB8 · Required for Vendor (Finance) role

Why: Every vendor needs a Payment Term in FLVN01 (Vendor — Finance) role. It defines when invoices are due + early-payment cash discount terms. Standard SAP ships 0001-0009 — usable immediately. Custom terms (e.g. Pakistani LC, advance payment) need configuration.

SPRO Path: Financial Accounting → Accounts Receivable and Accounts Payable → Business Transactions → Incoming Invoices/Credit Memos → Maintain Terms of Payment

📋 Standard SAP Payment Terms (already in IDES — no config needed)

CodeDescriptionCash DiscountBest for
0001Payable immediately due netNoneCOD, utilities, urgent purchases
000214 days 3% / 30 days 2% / 45 days netTiered (3% → 2%)Tiered discount vendors
000314 days 2% / 30 days net2% if paid in 14dB2B standard (Mughal Steel, Aisha Steel)
000414 days 3% / 20 days 2% / 30 days netTiered (3% → 2%)Aggressive early-payment incentive
000510 days 2% / 30 days net2% if paid in 10dStricter early payment
000714 days 3% / 30 days net3% if paid in 14dHigher discount
0008End of month / 14 daysNoneMonth-end billing cycle
0009Within 30 days due netNonePure Net 30, no discount
For learning: Just use 0003 for standard B2B vendors. It teaches cash discount mechanics (a tested interview topic) without any config work.

🇵🇰 Custom Pakistani Payment Terms (optional — OBB8 creation)

If you want terms matching real Pakistani business reality, create custom codes:

CodeDescriptionUse Case
PKCODCash on DeliverySmall/local cash vendors
PK30Pakistan Net 30 DaysStandard local B2B (no discount)
PK60Pakistan Net 60 DaysLarge vendors with credit
PK90Pakistan Net 90 DaysGovernment / large corporates
LC30Letter of Credit 30 DaysImport vendors (Anglo American, Glencore)
LC60Letter of Credit 60 DaysLong-cycle imports
LC90Letter of Credit 90 DaysHeavy machinery imports
ADV100100% Advance PaymentNew vendors / high-risk transactions
ADV5050% Advance / 50% on DeliveryProject materials

🛠️ Create Custom Payment Term (Example: PK30)

  1. Run OBB8
  2. Click New Entries
  3. Fill header:
    • Payt Terms: PK30
    • Sales Text: Pakistan Net 30 Days
    • Own Explanation: (auto-filled by SAP based on Term settings)
  4. Account type: ✓ Vendor (also tick Customer if same code used for SD)
  5. Default for baseline date: Select Document Date (most common in Pakistan — invoice date is the trigger)
    💡 Baseline date options: Document Date (invoice date) · Posting Date · Entry Date · No Default. Most Pakistani companies use Document Date — the payment clock starts from the invoice date printed by the vendor.
  6. Payment Terms section → Term 1:
    • Percentage: 0.000 (no cash discount)
    • No. of days: 30
  7. Leave Term 2 and Term 3 empty (no tiered discount)
  8. Save → Local Object (or Transport if production)

🛠️ Create LC30 (Letter of Credit, 30 days from BL date)

  1. OBB8 → New Entries
  2. Payt Terms: LC30 · Sales Text: LC 30 days from BL date
  3. Account type: ✓ Vendor
  4. Default for baseline date: Document Date (BL date entered in MIRO)
  5. Term 1: 0% / 30 days net
  6. Save

🛠️ Create ADV100 (100% Advance Payment)

  1. OBB8 → New Entries
  2. Payt Terms: ADV100 · Sales Text: 100% Advance — pay before delivery
  3. Account type: ✓ Vendor
  4. Default for baseline date: Document Date
  5. Term 1: 0% / -1 days (negative = pay BEFORE document date)
    ⚠️ Negative days = due before the baseline date. Some SAP versions reject this — alternative: use Term 1 = 0% / 0 days (due immediately) and handle advance via Down Payment Request (F-47).
  6. Save

📊 Real Vendor → Payment Term Mapping

VendorBP #IndustryRecommended TermReason
Mughal SteelMUGHAL21Local raw material0003 or PK30Monthly bulk steel scrap
Aisha SteelAISHA22Local billets0003 or PK30Standard B2B
Anglo AmericanANGLO23Iron ore importLC60International — LC terms
GlencoreGLEN24Coal importLC30Shorter cycle import
KE (Karachi Electric)KE27Utility0001Government — immediate
SSGC (Sui Gas)SSGC28Utility0001Government — immediate
TCS LogisticsTCS26Service vendor0009 or PK30Net 30, no discount
Lucky CementLUCKY25HAWA trading goods0003Standard with discount
New unverified vendorNEWAnyADV100Risk mitigation — pay in advance

🎓 Interview-Ready Q&A — Payment Terms

Q: What is the difference between Baseline Date and Due Date?

A: Baseline Date is the START of the payment clock (usually invoice/document date). Due Date is calculated = Baseline Date + Net days from payment term. Example: Invoice dated 1-June, Term 0003 (30 days net) → Baseline = 1-June, Due = 1-July.

Q: How does cash discount work in MIRO and F-53?

A: When you post an invoice in MIRO with term 0003 (14d 2% / 30d net), SAP records cash discount eligibility. If you pay via F-53 within 14 days, SAP automatically calculates the 2% discount and posts it to the Cash Discount Received G/L (auto-determined via SKE — Cash Discount). If you pay on day 15+, the full amount is paid.

Q: Where do payment terms default from?

A: Payment terms default in this order: (1) PO header from vendor master LFM1 (purchasing view), (2) MIRO invoice header from PO if linked, (3) Manual override allowed at any stage. The vendor master has TWO payment term fields — Finance (LFB1, used for direct FI invoices/credit memos) and Purchasing (LFM1, used for PO-based invoices). They can be different (e.g. LFM1 = 0003 for procurement, LFB1 = 0009 for FI adjustments).

Q: How would you configure payment terms for a Pakistani import vendor with LC?

A: Create a custom term (e.g. LC60) via OBB8 with: Baseline Date = Document Date (BL date), Term 1 = 30 days net (LC tenor). Set it on vendor LFM1. In MIRO, when the invoice is posted, the BL date entered triggers the 30/60/90-day countdown. The bank handles the LC at maturity; SAP just tracks the payable. For complex LC accounting (deposits, charges, FX), use Trade Finance (FI-TF) or Bank Communication Management (BCM).

Q: What is "Day Limit" in payment terms?

A: Day Limit lets ONE payment term code behave differently based on the invoice date in the month. Example: Term 0008 (EOM/14 days) with Day Limit 15 = "if invoice before the 15th, due end of month; if invoice after the 15th, due the 14th of next month." Use for batch billing cycles. Rarely needed for the Pakistani context.

📚 Source: Verified against help.sap.com — Terms of Payment + saponlinetutorials.com — OBB8 Tutorial

18G. Vendor Number Ranges — XKN1 + OBAS · For CVI "Same Number" flag

What: When CVI creates the vendor record in LFA1 alongside the BP, SAP needs to know which number range to use. If you want BP # = Vendor #, the linked vendor account group must use an EXTERNAL numeric range.

🛠️ Step 1 — Create Vendor Number Range (XKN1)

  1. Run XKN1 (Vendor Number Range)
  2. Click Change Intervals
  3. Click Insert Interval (Shift+F1)
  4. Two range patterns to choose from:
RangeFromToExternalUse Case
02AZZZZZZZZZZAlphanumeric vendor codes (MUGHAL21, AISHA22, ANGLO23) — recommended for Pakistani context
0300000000019999999999Numeric external — needed for "Same Number" flag (BP 21 = Vendor 21)
011999999☐ InternalSystem auto-assigns next number (SAP picks)

Save → Local Object.

🛠️ Step 2 — Assign Number Range to Vendor Account Group (OBAS)

  1. Run OBAS (Assign Number Ranges to Vendor Account Groups)
  2. Find the row for your vendor account group (e.g. LIEF external, KRED internal)
  3. Change the "Number Range" column to your created range (e.g. 02 for alphanumeric, 03 for numeric)
  4. Save
⚠️ OBAS gotcha in shared IDES
If OBAS shows other students' "ghost" ranges (e.g. XX, YY) that don't exist in XKN1, saving any row gives error "Number range XX not defined for object KREDITOR". Workaround: create the missing range in XKN1 as a dummy entry (No: XX, From: A1, To: AZ, Ext ✓) so OBAS validation passes — then proceed with your real change.

🛠️ Step 3 — Tick Same Number flag (V_TBD001)

  1. Run SM30 → Table V_TBD001 → Maintain
  2. Find the row for your BP Grouping (e.g. GPEX) ↔ Account Group LIEF
  3. Tick Same Nos. ✓ column
  4. Save (works only if the account group's number range is EXTERNAL — verify via OBAS + XKN1)

📊 Alphanumeric vs Numeric — which to choose?

AspectNumeric (BP=Vendor: 21=21)Alphanumeric (MUGHAL21)
Report readability (ME2L, ME2N)❌ "Who is 21?"✅ Instantly Mughal Steel
Config complexityHigh (XKN1+OBAS+V_TBD001)Low (just type name)
Real-world Pakistani usageCommon at large corporates (Engro)Common at SMEs + mid-tier
BP # popup behaviorNo popup (auto-assigned)Popup asks for vendor #
Best for learning IDESSkip — too much config✅ Recommended
For learning IDES (recommended): Skip XKN1/OBAS config. Just type alphanumeric vendor codes (MUGHAL21, AISHA22, etc.) when the BP save prompts for an external vendor number. Document the convention and move on. CVI Same-Number config is FI consultant territory.

📚 Source: saponlinetutorials.com — Vendor Number Ranges + SAP Blogs — BP CVI Overview

🎯 How BP Maps to Classic Vendor/Customer Tables

BP RoleBP TableSynced to (classic table)Purpose
BP GeneralBUT000LFA1 (vendor) / KNA1 (customer)General master data — address, name, country
Vendor (Finance)BUT021_FSLFB1Vendor CC-specific — recon, payment terms
Vendor (Purchasing)BUT020LFM1Vendor Purch Org data — currency, terms
Customer (FI)BUT021_FSKNB1Customer CC-specific
Customer (SD)BUT020KNVVCustomer Sales Area data

🚨 Issues & fixes

⚠️ Real IDES quirk — numeric vendor code rejected
Our vendor account group used external ALPHANUMERIC numbering, so a pure numeric like "21" was rejected when the BP save prompted for the external vendor number. The fix was to use a meaningful alphanumeric codeMUGHAL21 — which is both accepted by the external range and instantly readable in reports like ME2L/ME2N ("who is 21?" becomes "Mughal Steel" at a glance). This is why every academy vendor uses codes like MUGHAL21, AISHA22, ANGLO23 rather than bare numbers.
SymptomCauseFix
"Why can't I create a vendor via XK01 anymore?"S/4HANA deprecated XK01/MK01Use the BP transaction (single source of truth)
BP saved but POs say "vendor doesn't exist"CVI sync not configured / inactiveCheck V_TBD001 + activate sync (BUCSC)
Client wants vendor # to match BP #"Same Number" flag not setTick "Same Number" in the BUC2 grouping + external numeric range
Pure numeric vendor code rejectedAccount group uses external alphanumeric rangeUse a meaningful alphanumeric code (e.g. MUGHAL21)
Need to migrate 10,000 vendors from ECCMass BP conversionBP Conversion via MDS_LOAD_COCKPIT (separate big topic)

✅ Verification

🚫 What if you skip Step 18?
If you're using an IDES that already has BP fully configured, you can SKIP this entire step — just create vendors using the existing roles ("Vendor (Finance) (New)" + "Vendor (Purchasing)") as covered in Scenario 1. You'd only need to DO this step when setting up a fresh system, implementing custom Pakistani-specific numbering, or troubleshooting "vendor sync" issues in an S/4HANA conversion.
← Previous
Step 17: PP Setup for Production
Next →
Step 19: Controlling Area & Cost Centers