Skip to main content

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

AspectBehavior
Accepted file types.csv, .tsv, .txt, .xlsx, .xls, or pasted delimited text.
DelimiterAuto-detected (comma, tab, or semicolon); overridable when pasting.
Header rowAuto-detected; you confirm the First row is a header checkbox before mapping.
Column mappingEach 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 cellsA blank cell leaves that field unchanged on an update.
TemplateThere is no downloadable template for suppliers — build a file with a header row, or start from an export.

Identity and match columns

ColumnRequiredType / formatAccepted valuesNotes
idNoIntegerAn existing supplier IDWhen 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.
nameYesTextAnyThe 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.
typeNoTextgoods, servicegoods = Product Supplier, service = Service Provider. Case-insensitive; any other value errors the row.

Contact and profile columns

ColumnRequiredType / formatAccepted valuesNotes
company_nameNoTextAny
primary_contact_nameNoTextAnyShown as Contact Name.
emailNoEmailA valid email addressAn invalid address errors the row.
purchase_order_emailNoTextAnyThe address purchase orders are sent to.
websiteNoTextAny
timezoneNoTextAn IANA timezone name (for example, America/New_York)

Purchasing default columns

ColumnRequiredType / formatAccepted valuesNotes
leadtimeNoInteger ≥ 0Whole daysNon-negative whole number; a decimal or negative value errors the row.
minimum_order_quantityNoInteger ≥ 0Non-negative whole number.
target_stock_daysNoInteger ≥ 0Non-negative whole number.
minimum_purchase_orderNoNumber ≥ 0The 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.

ColumnResolves toNotes
default_warehouseA warehouseThe supplier's default receiving warehouse, by name.
default_storeA storeBy name.
default_payment_termA payment termBy name.
default_tax_rateA tax rateThe supplier's default tax rate, by name (for example GST 10%).
default_pricing_tierA supplier pricing tierSets 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.
Currency is set through the pricing tier

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.

ColumnType / formatNotes
address1TextAddress line 1.
address2TextAddress line 2.
cityText
provinceTextState / province.
province_codeTextState / province code.
countryText
country_codeText
zipTextZip / postal code.
faxText

Validation rules at a glance

Field kindRuleBlank cell
Text (name, company, address, etc.)Any value. Name must be non-blank or the row errors.Left unchanged on update.
typeMust be goods or service (case-insensitive).Left unchanged.
emailMust 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

Last verified: