Bulk Import — Customers & Vendors
For: Anyone adding many customers or vendors at once
Upload many customers or vendors at once from an Excel/CSV-style sheet instead of creating them one by one. This page explains what each row needs and what will cause a row to be rejected.
How it works
Every bulk upload has two steps. You run the same sheet through a Check first, fix anything it flags, then run it again to actually Create the records.
| Step | What it does |
|---|---|
| 1. Check (recommended) | Reviews your entire sheet and lists every row with a problem — without saving anything. Fix the issues and check again. |
| 2. Create | Once every row passes, upload again to actually create the records. |
Danger: Creating is all-or-nothing: if even one row has a problem, none of the customers/vendors are created — the whole batch is rejected and rolled back. This is why checking first is strongly recommended.
Danger: Always mark each row explicitly as Customer or Vendor. A row left blank passes the Check step but is silently created as a Vendor on the final step — mark exactly one role to avoid surprises.
Required in every row
These must be filled in correctly on every row:
| Field | What's needed |
|---|---|
| Display Name | A unique name. It can't repeat elsewhere in the same sheet, and can't already exist for the same role (see Duplicates below). |
| Company Name | Required on every row. |
| Primary Contact First Name | Required on every row. |
| Business Partner Type | Exactly 'Business' or 'Individual'. |
| GST Treatment | Required on every row. |
| Currency | A currency code (e.g. INR, USD) already configured for your company — it isn't created from the sheet. |
| Role (Customer / Vendor) | Mark each row as Customer or Vendor. Don't leave it blank (see the warning above). |
Optional fields with rules
These are optional — but if you fill them in, they must follow these rules:
| Field | Rule if you fill it in |
|---|---|
| Must be a valid email address format, e.g. name@company.com. | |
| Phone Number | Digits only — no +, spaces, or dashes. |
| GSTIN/UIN | Normally optional, but becomes required if GST Treatment is 'Registered Business Regular'. |
| Tax Preference | Must be 'Taxable' or 'Tax Exempt'. |
| Payment Terms | One of: Due On Receipt, Due end of the month, Due end of next month, Net 15, Net 30, Net 45, Net 60, Net 75, Advance, After Dispatch. |
Must match existing records
Addresses follow a Country → State → City hierarchy, applied separately to Billing and Shipping. You can leave an address blank, but if you fill in part of it, the level above must also be filled in. Country, State, and City must each match real names already in the system.
| Field | What it must match |
|---|---|
| Currency | Must be a currency code already set up for your company. |
| Billing / Shipping Country | Must match a real country name in the system. Country can stand alone. |
| Billing / Shipping State | If a State is entered, both a City and a Country are required, and the State must belong to that Country. |
| Billing / Shipping City | If a City is entered, a State is required (and via the State, a Country). The City must belong to that State. |
Duplicates & uniqueness
| Situation | What happens |
|---|---|
| 'Rahul Traders' exists as a Vendor, and you import 'Rahul Traders' as a Customer | Allowed — the same name can exist once as a customer and once as a vendor; roles are tracked separately. |
| 'Rahul Traders' exists as a Customer, and you import another 'Rahul Traders' as a Customer | Rejected — it already exists in that same role. |
| The same Display Name is used twice in your sheet | Rejected — names must be unique within the upload (not case-sensitive). |
Common mistakes
If a row is rejected, it is usually for one of these reasons:
| If this happens… | …here's what it means |
|---|---|
| Display Name missing, or used twice in the sheet | Every row needs a name, unique within the upload. |
| Display Name already used before in the same role | That customer (or vendor) already exists — use a different name, or the other role. |
| Business Partner Type blank or misspelled | Must be exactly 'Business' or 'Individual'. |
| Phone includes +, spaces, or dashes | Enter digits only. |
| GST Treatment is 'Registered Business Regular' but GSTIN/UIN is missing | GSTIN/UIN becomes mandatory the moment that treatment is selected. |
| Currency code missing or not set up for the company | Only currencies already configured for your company can be used. |
| City filled but State blank (or State filled but City/Country blank) | Follow the Country → State → City hierarchy. |
| Country / State / City name doesn't match | Must match existing names; State must belong to the Country and City to the State. |
What happens on the final step
- •Each record is created with a sequential customer/vendor number (using your company's numbering).
- •The role you marked decides the account used (receivable for customers, payable for vendors) and the number prefix.
- •Billing and shipping addresses are attached as entered, matched to the country/state/city records.
- •The whole batch is written together in a single transaction — if anything fails, nothing is saved.
Recommended way to work
- Build your sheet with all the customers/vendors you want to add.
- Mark every row explicitly as Customer or Vendor.
- Run the Check step first and review the list of problem rows.
- Fix each issue in the sheet using the tables above as a guide.
- Run the Check step again until every row passes, then run Create.
- Tip: if you edit the sheet after checking, run Check once more before creating — new mistakes can slip in.