Importable supplier columns reference
This page is the complete lookup for every column the supplier importer reads, plus the validation each one is subject to. It's the reference companion to the task guide Import suppliers from a spreadsheet — read that first for the step-by-step flow; come here to look up a specific column, its accepted values, or an edge case.
Everything below is read straight from the importer, so it's authoritative for what the Import Suppliers dialog accepts.
Before you begin
- Importing requires the suppliers.import permission.
- The five name-lookup columns (warehouse, store, payment term, tax rate, pricing tier) resolve a value to a record that must already exist in your account, matched by name (case-insensitive). Unlike a hard lookup, an unmatched value here is a warning, not an error: the row still imports and that field is left blank. Set the referenced records up first in Settings.
File formats and how columns are read
| Aspect | Behavior |
|---|---|
| Accepted file types | .csv, .tsv, .txt, .xlsx, .xls, or pasted delimited text. |
| Delimiter | Auto-detected (comma, tab, or semicolon); overridable when pasting. |
| Header row | Auto-detected; you confirm the First row is a header checkbox before mapping. |
| Column mapping | Each file column is mapped to a target field via a Maps To dropdown. A header that equals a field's key or label auto-matches (case- and spacing-insensitive); anything else you map by hand or Skip. |
| Blank cells | A blank cell leaves that field unchanged on an update. |
| Template | There is no downloadable template for suppliers — build a file with a header row, or start from an export. |
Identity and match columns
| Column | Required | Type / format | Accepted values | Notes |
|---|---|---|---|---|
id | No | Integer | An existing supplier ID | When mapped and non-blank, forces an update-by-ID match. A non-numeric ID, or an ID that doesn't exist, is a row error. |
name | Yes | Text | Any | The supplier name and the natural match key — names are globally unique, so a row without id whose Name matches an existing supplier updates it. A blank Name errors the row. |
type | No | Text | goods, service | goods = Product Supplier, service = Service Provider. Case-insensitive; any other value errors the row. |
Contact and profile columns
| Column | Required | Type / format | Accepted values | Notes |
|---|---|---|---|---|
company_name | No | Text | Any | |
primary_contact_name | No | Text | Any | Shown as Contact Name. |
email | No | A valid email address | An invalid address errors the row. | |
purchase_order_email | No | Text | Any | The address purchase orders are sent to. |
website | No | Text | Any | |
timezone | No | Text | An IANA timezone name (for example, America/New_York) |
Purchasing default columns
| Column | Required | Type / format | Accepted values | Notes |
|---|---|---|---|---|
leadtime | No | Integer ≥ 0 | Whole days | Non-negative whole number; a decimal or negative value errors the row. |
minimum_order_quantity | No | Integer ≥ 0 | Non-negative whole number. | |
target_stock_days | No | Integer ≥ 0 | Non-negative whole number. | |
minimum_purchase_order | No | Number ≥ 0 | The minimum purchase-order amount; non-negative number. |
Name-lookup columns
Each of these resolves a value to a record that must already exist. The match is by name, case-insensitive. An unmatched non-blank value produces a warning (the field is left blank and the row still imports); a blank leaves the field unchanged.
| Column | Resolves to | Notes |
|---|---|---|
default_warehouse | A warehouse | The supplier's default receiving warehouse, by name. |
default_store | A store | By name. |
default_payment_term | A payment term | By name. |
default_tax_rate | A tax rate | The supplier's default tax rate, by name (for example GST 10%). |
default_pricing_tier | A supplier pricing tier | Sets the supplier's default pricing tier, which carries its currency — this is how currency is set on import. Matches either the tier's name or its display name (for example Supplier USD (USD)), so a value copied from an export resolves cleanly. |
There is no standalone currency column. A supplier's currency is the currency of its default pricing tier, so import a default_pricing_tier value to set it. See Set tax rate and currency in bulk.
Address columns
These populate the supplier's address. When any are present on a new supplier, an owned address is created for it.
| Column | Type / format | Notes |
|---|---|---|
address1 | Text | Address line 1. |
address2 | Text | Address line 2. |
city | Text | |
province | Text | State / province. |
province_code | Text | State / province code. |
country | Text | |
country_code | Text | |
zip | Text | Zip / postal code. |
fax | Text |
Validation rules at a glance
| Field kind | Rule | Blank cell |
|---|---|---|
| Text (name, company, address, etc.) | Any value. Name must be non-blank or the row errors. | Left unchanged on update. |
type | Must be goods or service (case-insensitive). | Left unchanged. |
email | Must be a valid email address when present. | Left unchanged. |
Integer (leadtime, minimum_order_quantity, target_stock_days) | Whole number ≥ 0; a decimal or negative value is a row error. | Left unchanged. |
Number (minimum_purchase_order) | Number ≥ 0; a negative or non-numeric value is a row error. | Left unchanged. |
Name lookups (default_warehouse, default_store, default_payment_term, default_tax_rate, default_pricing_tier) | Matched by name (case-insensitive). An unmatched value is a warning — the field is left blank and the row still imports. | Left unchanged. |
Next steps
- Import suppliers from a spreadsheet — the full task flow, update-vs-create, and the tax-rate/currency round-trip.
- Export suppliers — the column-by-column list for exporting suppliers back out, and which columns re-import.
- The suppliers list: columns — which columns you can show and edit inline.