SAP transaction codeObjectXD01ModuleSD_O2C

XD01 — Create Customer Centrally

XD01 creates a customer master record across all three data segments at once: general data, company code data, and sales area data. It is a screen-sequence wrapper over separate tables, so a customer can exist in general data without having a usable sales area record, which is the most common source of downstream order-entry failures.

This page covers XD01, the central customer creation transaction that combines general, company code, and sales area data entry in one pass. It focuses on why a customer can 'exist' and still fail to appear in a sales order, and how to trace that back through the underlying tables.

Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,238 words

Purpose

XD01 creates a new customer master record by walking through three data segments in sequence: general data (name, address, control data, shared across the client), company code data (reconciliation account, payment terms, dunning, tied to one company code), and sales area data (pricing procedure inputs, shipping conditions, billing schedules, tied to one combination of sales organization, distribution channel, and division). The structural fact that explains most confusion: these segments live in separate tables and are optional independently of each other. XD01 is a convenience wrapper, not a single atomic write. A customer can be saved with general data only, or general plus company code but no sales area, depending on which screens were completed and how the account group is configured to skip or require them. The customer then 'exists' for some purposes and not others.

When it is used

XD01 is reached for at true customer onboarding, before the first sales order can be created against that customer, or during data load projects where a customer needs general, company code, and sales area data populated together. It is chosen over VD01 when company code (FI) data also needs to be created in the same pass rather than by the FI team separately. It is chosen over simply extending an existing customer (XD02) when the customer number does not exist at all yet. On S/4HANA with the business partner model active, this route may be technically retired or redirected in favor of the business partner creation transaction, with XD01 either blocked or running as a compatibility layer underneath it; check which model the client is on before assuming XD01 is the live path.

How to use it in practice

  • Call XD01 and choose the account group deliberately; it governs number range, mandatory fields, and which screens appear
  • Enter company code on the initial screen if company code data is to be created in this pass
  • Enter sales organization, distribution channel, and division if sales area data is to be created in this pass
  • Optionally enter a reference customer number to copy an existing master as a template
  • Complete the general data screens (address, control, marketing, unloading points)
  • Complete the company code screens (account management, payment transactions, correspondence, insurance)
  • Complete the sales area screens (sales, shipping, billing, partner functions, tax classification)
  • Save and record the assigned customer number if internal number range is used

Key data objects

  • KNA1 - general data: name, address, search terms, control data, client-independent of company code and sales area
  • KNB1 - company code data: reconciliation account, payment terms, dunning procedure, one row per company code
  • KNVV - sales area data: pricing group, shipping conditions, billing block, terms of delivery, one row per sales org/distribution channel/division combination
  • KNVP - partner functions per sales area: which customer plays sold-to, ship-to, payer, bill-to for that sales area
  • KNVI - tax classification per sales area for tax determination in pricing
  • KNB5 - dunning data at company code level, populated if dunning procedure entered

How to prove it in the data

In SE16 on KNA1, filter by customer number to confirm the record exists at all and check the creation date and account group. If it exists there but a sales order rejects the customer, go to KNVV and filter by the same customer number plus the exact sales organization, distribution channel, and division from the order; a missing row there is the direct cause. Cross-check KNB1 by company code the same way if the failure is on billing or credit management rather than order entry, since those often read company code data instead of sales area data.

ECC vs S/4HANA

On systems running the business partner model, the customer master is technically a view onto the business partner record, and XD01 either runs as a compatibility wrapper calling business partner logic underneath or is deliberately blocked in favor of creating the business partner directly. Where it is blocked, the equivalent path is the business partner creation transaction with the customer role assigned, followed by the same three-segment data entry conceptually reorganized under business partner screens. Where XD01 still runs, the underlying tables (KNA1, KNB1, KNVV) are unchanged.

Common pitfalls and how to diagnose them

  • Account group mismatch: the account group chosen at creation fixes the number range and which fields are mandatory or hidden; if the wrong group was picked, the customer may save with segments the business expected but a different structure than the process needs, and changing the account group after creation is not a simple field edit.
  • Sales area not extended: the most frequent cause of a customer that exists but cannot be used in VA01. General and company code data were created, but no KNVV row exists for the sales org/distribution channel/division the order needs. The fix is running XD01 again with the same customer number and the new sales area combination, not creating a new customer number.
  • Partner functions missing: sold-to created but ship-to, bill-to, or payer never assigned in KNVP for that sales area. Order entry may still succeed but pricing, output, or billing determination fails later because the partner it needs to resolve to is not defined.
  • Duplicate creation: the customer already existed under a different number because no search was done first, producing two records for the same real-world customer with split order history. Duplicate-check tooling, where configured, should be run before XD01 is used, not after.
  • Partial save from authorization gaps: a user with authorization for general data but not for a specific company code or sales org can save a record missing that segment with no obvious error on the general data screen, leaving the appearance of a complete customer that is actually incomplete for that org.
  • Reflex fix that makes it worse: when a customer cannot be used in a sales area, creating a brand new customer number under the same name is the wrong instinct; it fragments history and reporting. The correct move is always extension of the existing number via XD01 with that number and the missing sales area.

Whose problem this is

Functional ownership sits with SD or FI master data teams depending on which segment is at issue: SD for sales area and partner function problems, FI for company code and dunning problems. ABAP involvement is only needed if a custom master data check or enhancement is rejecting the save. A good handover includes the customer number, account group, the exact sales area or company code attempted, and the precise error message and screen.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tcodes/xd01ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.