How to Set Up a New Customer

This guide walks you through everything required to create a new customer in xRMS — the master data that must exist beforehand, the required fields on the customer form, and the additional setup that typically happens after the customer record is saved.

1. Prerequisites — set these up first

Before you create a customer, the following master data and dictionary entries must already exist. If any of them are missing, the corresponding dropdown or autocomplete on the customer form will be empty and you will not be able to save.

Master records

What

Why it's needed

Where it lives

Company

Every customer belongs to a Company. Selecting the Company also auto-fills several A/R and Order defaults on the form.

System → Companies

Route

The customer must be assigned to a delivery Route. Selecting the Route auto-populates the Distribution Center.

Route → Routes

Distribution Center

Set automatically from the selected Route, but the DC record itself must exist.

Distribution → Distribution Centers

Salesperson (optional)

Optional but commonly assigned. If you plan to set one, the salesperson record must exist.

Sales → Salespersons

Price Group (optional but typical)

If the customer should follow a pricing scheme, the Price Group must exist before you can pick it on the Pricing tab.

Pricing → Price Groups

Terms Code (optional)

Used by the A/R tab to default payment terms.

Accounts Receivable → Terms

Tax Code / Tax Group (optional)

Required only if the customer is taxable. Configure tax codes first if you want to assign them.

Taxation

Headquarters customer (optional)

If you're creating a sub-customer or a customer that rolls up to an HQ account for billing, the parent HQ customer must already exist.

Customer → Customers

Dictionary / lookup codes

Several required dropdowns are populated from system dictionaries. An administrator can manage these under System → Dictionaries. The customer create form needs the following dictionary codes to have at least one active value:

Dictionary code

Used for

Form field

CP

Corporation type

Corporation Number (General tab)

ORDTYP

Order type

Order Type (Route Settlement / Sales Order)

LODTYP

Load sheet type

Load Sheet Type

OPNITM

Open item / balance-forward flag

Open Item Flag (A/R tab)

PAYTYP

Payment type

Payment Type (A/R tab)

INDBIL

Individual billing rule

Individual Billing (A/R tab)

Tip: If you select a Company that already has defaults configured, the form will auto-fill Order Type, Load Sheet Type, and Payment Type. You can still change them, but defaulting from the Company is the fastest path.

2. Open the Customer Create form

  1. From the main menu, go to Customer → Customers.

  2. Click Create (or use the route /customer/create).

  3. If you want to base the new customer on an existing one, open the existing customer and choose Copy. You'll be asked whether to also copy defaults (price assignments, options, etc.).

3. Required fields on the create form

The fields below are validated and must be filled in before the form will save. Fields marked with * are required.

Identity

Field

Notes

* Chain Number

Up to 5 digits. Use 0 if the customer is not part of a chain.

* Customer Number

Up to 9 digits. Must be greater than zero when Chain is zero.

* Customer Name

Up to 30 characters.

Sub-Customer Number

Optional. Used for sub-accounts under the same parent customer/chain.

General tab

Field

Notes

* Company

Pick from the autocomplete. Drives several defaults.

* Route

Must be a valid existing route (≥ 1).

* Corporation

From the CP dictionary.

Distribution Center

Read-only — populated from the chosen Route.

Ship-To Address

Optional here. Validated only if you start entering it. Can also be added later via Customer Addresses.

Bill-To Address

Optional. If you enter a Bill-To Name, the full bill-to address becomes required.

A/R tab

Field

Notes

* Payment Type

From the PAYTYP dictionary. Defaults from the Company if configured.

* Open Item Flag

From the OPNITM dictionary — controls balance-forward vs. open-item A/R behavior.

* Individual Billing

From the INDBIL dictionary. If the customer rolls up to a headquarters account, the value must align with that HQ's billing rule.

Terms Code

Optional but commonly set so invoice due dates are calculated automatically.

Credit Limit / Credit Hold

Optional. Set if you want A/R to enforce credit checks.

Route Settlement / Sales Order tab

Field

Notes

* Order Type

From the ORDTYP dictionary. Defaults from the Company.

* Load Sheet Type

From the LODTYP dictionary. Defaults from the Company.

Heads up: The Individual Billing value (INDBIL) is cross-checked against the headquarters account when one is involved. If you pick a value that conflicts with the HQ's billing rule, you'll see a validation error on save — pick the matching code or correct the HQ setup first.

4. The form tabs at a glance

The customer form is organized into the following tabs. Only the General, A/R, and Route Settlement tabs contain mandatory fields for create; the rest can be filled in later.

  1. General — Identity, Company, Route, Distribution Center, addresses.

  2. A/R — Payment type, open-item flag, individual billing, terms, credit.

  3. Ticket — Invoice/ticket printing preferences.

  4. Route Settlement — Order type, load sheet type, fulfillment options.

  5. Pricing — Price group assignments, promotional settings.

  6. Extension — Extended attributes and special codes.

  7. Misc — Type codes, channel, business type, sector, region.

  8. HH — Handheld / mobile delivery device settings.

5. Save the customer

  1. When all required fields are filled in, the Save button becomes enabled.

  2. Click Save. The form posts a CreateCustomer command to the API, where it is validated again on the server.

  3. On success you'll be returned to the customer list (or the new customer's edit view, depending on your settings) and the customer is now available throughout the system.

6. Post-create setup

The customer record itself is now created with the minimum required information. Most customers also need the following follow-up setup, which lives in dedicated screens rather than on the create form:

What

Why

Where

Ship-to / additional addresses

If the customer delivers to more than one location, or if you skipped the ship-to on the create form.

Customer → Customer Addresses — route: /customer-addresses/:chain/:cust/:sub

Contacts

Add contact people, phone numbers, and email addresses for ordering, A/R, etc.

Customer → Customer Contacts — route: /customer-contact/:chain/:cust/:sub

Customer prices

Assign customer-specific prices or override price-group prices for selected items.

Pricing → Customer Prices

Customer notes

Free-form internal notes that follow the customer around the system.

Customer record → Notes section

Customer options / custom fields

Optional or organization-specific attributes (loyalty flags, segment codes, etc.).

Customer record → Options section

Authorization groups

If the customer is restricted to specific item authorizations, configure the auth group/details.

Customer → Auth Group Detail

Recommended order: Customer record → Ship-To addresses → Contacts → Pricing assignment → Any custom options. This way the customer is immediately usable in Order Entry by the time you finish.

7. Common validation errors

Message / behavior

Cause

Fix

"Customer Number must be greater than zero"

Chain is 0 and Customer is also 0.

Enter a positive Customer Number.

"Company is required"

Company autocomplete left empty or has free text that doesn't resolve to a record.

Pick a Company from the autocomplete list (don't just type).

"Route is required" / "Route must be ≥ 1"

Route not chosen, or Route field cleared after entry.

Select a valid Route from the autocomplete.

Order Type / Load Sheet Type / Payment Type dropdown is empty

The corresponding dictionary (ORDTYP, LODTYP, PAYTYP) has no active values.

An administrator must add values under System → Dictionaries.

"Individual Billing does not match headquarters"

Customer rolls up to an HQ account whose billing rule differs from the value you chose.

Either change Individual Billing to match the HQ, or reconfigure the HQ account first.

Bill-to address fields show errors even though you only typed the name

Entering a Bill-To Name makes the full Bill-To address required.

Either complete the bill-to address, or clear the Bill-To Name to leave billing-to-same-as-shipping.

8. Field reference (technical codes)

This section is for administrators or integrators who need the underlying field codes — for example, when mapping an import file or troubleshooting the API. The codes match the CreateCustomerCommand on the backend.

UI field

Property code

Required?

Source

Chain Number

CUSCUSCHN

Yes

Manual

Customer Number

CUSCUSNUM

Yes

Manual

Customer Name

CUSCUSNAM

Yes

Manual

Company

CUSCOMNUM

Yes

Company master

Route

CUSRTENUM

Yes

Route master

Corporation

CUSCORNUM

Yes

Dictionary CP

Order Type

CSOORDTYP

Yes

Dictionary ORDTYP

Load Sheet Type

CSOLODTYP

Yes

Dictionary LODTYP

Open Item Flag

CAROPIFLG

Yes

Dictionary OPNITM

Payment Type

CARPAYTYP

Yes

Dictionary PAYTYP

Individual Billing

CUSINDBIL

Yes

Dictionary INDBIL

Bill-To Name

CAFADRNAM

Conditional

Manual — triggers full bill-to requirement

For developers: The Angular form lives at src/ncs-angular-clients/projects/xrms/src/app/main/customer/customer/components/customer-form/ and the backend validation rules at src/xRMSAPI/Validation/Customer/CreateCustomerCommandValidator.cs. If you change required fields, keep both sides in sync.