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 |
|---|---|---|
| Corporation type | Corporation Number (General tab) |
| Order type | Order Type (Route Settlement / Sales Order) |
| Load sheet type | Load Sheet Type |
| Open item / balance-forward flag | Open Item Flag (A/R tab) |
| Payment type | Payment Type (A/R tab) |
| 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
From the main menu, go to Customer → Customers.
Click Create (or use the route
/customer/create).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 |
* 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 |
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 |
* Open Item Flag | From the |
* Individual Billing | From the |
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 |
* Load Sheet Type | From the |
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.
General — Identity, Company, Route, Distribution Center, addresses.
A/R — Payment type, open-item flag, individual billing, terms, credit.
Ticket — Invoice/ticket printing preferences.
Route Settlement — Order type, load sheet type, fulfillment options.
Pricing — Price group assignments, promotional settings.
Extension — Extended attributes and special codes.
Misc — Type codes, channel, business type, sector, region.
HH — Handheld / mobile delivery device settings.
5. Save the customer
When all required fields are filled in, the Save button becomes enabled.
Click Save. The form posts a
CreateCustomercommand to the API, where it is validated again on the server.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: |
Contacts | Add contact people, phone numbers, and email addresses for ordering, A/R, etc. | Customer → Customer Contacts — route: |
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 | 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 ( | 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 |
| Yes | Manual |
Customer Number |
| Yes | Manual |
Customer Name |
| Yes | Manual |
Company |
| Yes | Company master |
Route |
| Yes | Route master |
Corporation |
| Yes | Dictionary |
Order Type |
| Yes | Dictionary |
Load Sheet Type |
| Yes | Dictionary |
Open Item Flag |
| Yes | Dictionary |
Payment Type |
| Yes | Dictionary |
Individual Billing |
| Yes | Dictionary |
Bill-To Name |
| 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.