Skip to main content
Skip to main content

Set Up Automated Uploads via SFTP

Configure SFTP connections to automate product, service, price, and stock data uploads to the Axiom platform.

  • supplier-sftp-import-configs-listView the list of SFTP import configurations.
  • supplier-sftp-import-configs-createCreate SFTP import configurations.
  • supplier-sftp-accounts-listView the list of SFTP accounts.
  • supplier-sftp-accounts-createCreate SFTP accounts.
  • supplier-sftp-accounts-import-configs-attachAttach import configurations to an SFTP account.
  • supplier-batch-request-listView the list of import requests.
  • supplier-batch-request-showView the details of an import request.
  • supplier-batch-request-download-error-listDownload the errors from an import request.

Overview

You can use SFTP (Secure File Transfer Protocol) to automate data uploads to the Axiom platform. You can schedule regular transfers from your internal systems directly to Axiom's SFTP server instead of manually importing CSV files through the web interface.

SFTP uploads are useful when you:

  • Manage a large number of products or services that change frequently
  • Want to integrate your internal systems (ERP, PIM) with the Axiom platform
  • Need to schedule recurring uploads without manual intervention
  • Require a secure, encrypted channel for transferring business data

How SFTP Uploads Work

The SFTP upload process follows these steps:

SFTP upload workflow diagram showing the five steps: Create Configuration, Create Account, Connect and Upload, Automatic Processing, and Review Results
  1. Create a configuration — Define what type of data you are uploading, the file format, and the processing schedule.
  2. Create an account — Set up SFTP credentials with an SSH public key linked to your configuration.
  3. Connect and upload — Use an SFTP client to transfer your CSV files to the Axiom SFTP server.
  4. Automatic processing — The platform processes uploaded files on the schedule defined in your configuration.
  5. Review results — Check the File Imports page for import status, errors, and notifications.

Prerequisites

Before you begin, ensure you have:

Generating SSH Keys

SFTP authentication uses SSH key pairs instead of passwords. You need to generate a key pair and provide the public key to Axiom when creating your SFTP account.

Generate a Key Pair on macOS or Linux

  1. Open a terminal
  2. Run the following command:
Bash
ssh-keygen -t ed25519 -C "your-email@example.com"
  1. When prompted, enter a file location or press Enter to accept the default (~/.ssh/id_ed25519)
  2. Enter a passphrase for added security, or press Enter to skip
  3. The command generates two files:
    • Private key~/.ssh/id_ed25519 (keep this secure; do not share it)
    • Public key~/.ssh/id_ed25519.pub (provide this to Axiom)
  4. Copy the public key:
Bash
cat ~/.ssh/id_ed25519.pub

Generate a Key Pair on Windows

  1. Open PowerShell or Command Prompt
  2. Run the following command:
Bash
ssh-keygen -t ed25519 -C "your-email@example.com"
  1. Follow the prompts to save the key and set a passphrase
  2. The public key is saved to C:\Users\<your-username>\.ssh\id_ed25519.pub
  3. Open the file in a text editor and copy the contents

Tip

If your system does not support ed25519, use ssh-keygen -t rsa -b 4096 instead. Both key types are supported.

Creating an SFTP Configuration

  1. Navigate to Settings > SFTP > Configurations
  2. Select + Create Configuration to define the connection parameters, file format, and upload schedule for your SFTP integration
  3. Enter the configuration details:
    • Name — A descriptive name for this configuration (for example, "Weekly Product Upload" or "Daily Stock Sync")
    • Import type — Select the type of data to import (for example, Products CSV, Services CSV, Prices CSV, or Stock CSV)
    • Schedule — Define how often the platform checks for and processes new files
  4. Select Save to create the configuration

Creating an SFTP Account

  1. Navigate to Settings > SFTP > Accounts
  2. Select + Create Account to set up a new SFTP account with a username, SSH public key, and linked configuration
  3. Enter the following details:
    • Username — A unique username for this SFTP connection
    • SSH Public Key — Paste the contents of your public key file (for example, id_ed25519.pub)
    • Configuration — Select the SFTP configuration to link this account to
  4. Select Save to create the account

After you save, the platform provides the SFTP connection details you need to connect, including the host address and port number.

Connecting to Your SFTP Account

Use an SFTP client to connect to the Axiom SFTP server. Common SFTP clients include:

  • FileZilla (Windows, macOS, Linux)
  • WinSCP (Windows)
  • Cyberduck (Windows, macOS)
  • Terminal / Command Line (macOS, Linux)

Connect with an SFTP Client

  1. Open your SFTP client
  2. Enter the connection details provided by the platform:
    • Host — The Axiom SFTP server address
    • Port — The SFTP port number
    • Username — The username you created in the SFTP account
    • Authentication — Select SSH key authentication and point to your private key file
  3. Select Connect

Connect with the Command Line

Bash
sftp -i ~/.ssh/id_ed25519 your-username@sftp.axiomdata.io

Replace your-username with the username from your SFTP account and the host with the address provided by the platform.

Supported Import Types and Directory Structure

Place files in specific directories based on the type of import. The system automatically detects the import type based on the directory name.

Supported Directories

Directory NameImport TypeDescription
product-csvProduct importCreate or update products and variants
price-list-csvPrice list importUpdate pricing information for products
product-stock-csvProduct stock importUpdate stock levels and lead times
recommendation-rule-csvRecommendation rulesConfigure product recommendations
restrict-productRestrict productControl product visibility per marketplace
service-csvService importCreate or update service offerings
  • Upload one file at a time per configuration to avoid processing conflicts
  • Ensure each file is fully transferred before the next scheduled processing window

Preparing Product Files

Format your product data as a CSV file. Your file must include all the required fields listed below. For JSONL file imports, see Manage Products with Files.

Required CSV Fields for Products

FieldDescription
Product IdentifierA unique identifier for the product.
NameThe product name. Use 1–150 characters. Supports Unicode characters (ASCII recommended).
SKUA unique Stock Keeping Unit. Use your existing SKUs where possible.
BrandThe product brand name.
ManufacturerThe product manufacturer name.
Unit SizeThe measure and dimension of your product. See the full list of supported units.
Unit LabelThe unit of measure that appears on the customer invoice.
MPNThe Manufacturer Part Number.
UNSPSCA United Nations Standard Products and Services Code to classify the product.

Optional CSV Fields for Products

FieldDescription
Language CodeThe language of the product information (for example, en, de). Defaults to English.
DescriptionA detailed description of your product. A comprehensive description helps show your product to the right customers.
Image URLThe URL for a product image. This image appears to potential buyers.
PropertiesThe properties of the product (for example, colour, size). Property names can be up to 155 characters, but buyers typically see only the first 30 characters.
Product Page URLA link to the product page on your website.
CategoriesThe product categories for classification and search.
TypeThe product type: simple (no variants) or complex (has variants).
CodesAdditional product codes (for example, UPC, EAN).
CommandUse archive or delete to remove products.

Tip

Download the CSV template from the Products > File Imports page to ensure your file uses the correct field structure.

Preparing Product Price Files

Format your product price data as a CSV file. For detailed pricing instructions, see Managing Product Price Lists.

Required CSV Fields for Product Prices

FieldRequiredDescription
TypeYesMust be product or product_variant.
IdentifierYesThe product or variant identifier.
CountryYesISO 3166 Alpha-2 country code (for example, GB, US).
CurrencyYesThe currency code (for example, GBP, USD).
PriceYesThe unit price for the product.
Billing SchemeYesstandard, volume, or graduated.
Store IDNoThe store to apply the price to. Leave empty to apply to all connected stores.
Catalogue IdentifierNoThe catalogue reference for catalogue-specific pricing.
Public PriceNoThe publicly available list price or RRP.
RegionNoISO 3166 region code for region-specific pricing.
Starts AtNoStart date in YYYY-MM-DD format.
Ends AtNoEnd date in YYYY-MM-DD format.
Minimum Order QuantityNoMinimum order amount (must be 1 or greater).
Order Quantity IntervalNoOrder increment value (must be 1 or greater).
Tax BehaviourNoinclusive or exclusive.
Tax RateNoTax percentage (0–100).
CommandNoUse create for new prices or archive to remove prices.

Tip

Include the Store ID to create store-specific prices. To find the Store ID, search for the store on the Stores page. If you leave Store ID empty, prices apply to all connected stores.

Preparing Stock Files

Format your stock data as a CSV file. For detailed stock instructions, see Stock, Lead Time & Shipping Information.

Required CSV Fields for Stock

FieldRequiredDescription
TypeYesMust be product or product_variant.
IdentifierYesThe product or variant identifier.
Country CodeYes*ISO 3166 Alpha-2 country code. Provide either Country Code or Location Identifier.
Location IdentifierYes*The stock location identifier. Provide either Country Code or Location Identifier.

Optional CSV Fields for Stock

FieldDescription
StockThe quantity available for purchase.
Always AvailableSet to True if the product is always in stock, or False otherwise.
Lead Time DaysThe number of days from order to delivery dispatch.
HeightThe shipping height of the product.
Height Unit Of MeasureThe height unit: cm or in.
LengthThe shipping length of the product.
Length Unit Of MeasureThe length unit: cm or in.
WidthThe shipping width of the product.
Width Unit Of MeasureThe width unit: cm or in.
WeightThe shipping weight of the product.
Weight Unit Of MeasureThe weight unit: lb or kg.
HS CodeThe Harmonized System Code for customs classification.

Tip

Download the CSV template from the Products > File Imports page and select Stock CSV file to ensure your file uses the correct field structure.

Preparing Service Files

Format your service data as a CSV file. For detailed service import instructions, see Manage Services with Files.

Required CSV Fields for Services

FieldDescription
Service IdentifierA unique identifier for the service.
NameThe service name. Use 1–150 characters. Supports Unicode characters (ASCII recommended).
Service TypeThe billing type: fixed or variable.
Unit SizeThe measure and dimension of your service. See the full list of supported units.
Unit LabelThe unit of measure that appears on the customer invoice.
SKUA unique SKU for the service. Use your existing SKUs where possible.
UNSPSCA United Nations Standard Products and Services Code (UNSPSC) to classify the service.

Optional CSV Fields for Services

FieldDescription
DescriptionA description of your service. A detailed description helps show your service to the right customers.
Image URLThe URL for a service image. This image appears to potential buyers.
PropertiesThe properties of the service you are selling. Properties and property values appear on the service page and are used to filter and search for services. Property names can be up to 155 characters, but buyers typically see only the first 30 characters. Property values have no length limit.

Required CSV Fields for Service Prices

FieldRequiredDescription
TypeYesMust be service.
IdentifierYesThe service identifier.
CountryYesISO 3166 Alpha-2 country code (for example, GB, US).
CurrencyYesThe currency code (for example, GBP, USD).
PriceYesThe unit price for the service.
Store IDNoThe store to apply the price to. Leave empty to apply to all connected stores.
Billing SchemeNostandard (default), volume, or graduated.
Starts AtNoStart date in YYYY-MM-DD format.
Ends AtNoEnd date in YYYY-MM-DD format.
Minimum Order QuantityNoMinimum order amount (must be 1 or greater).
Tax BehaviourNoinclusive or exclusive.
CommandNoUse create for new prices or archive to remove prices.

Tip

Download the CSV template from the Services > File Imports page to ensure your file uses the correct field structure.

Uploading Files

  1. Connect to the SFTP server using your SFTP client and account credentials
  2. Transfer your CSV file to the root upload directory
  3. The platform processes uploaded files automatically based on your configuration schedule

Monitoring Upload Status

After uploading a file via SFTP:

  1. Navigate to the File Imports page in the platform
  2. Check the import status for your uploaded file
  3. Select the import row to view details, including:
    • Number of successfully imported records
    • Number of errors
    • Error details with file rows and error messages
  4. Download the error file if needed. The error file contains your original data with an appended errors column to identify which rows need adjusting

You also receive a notification in the platform (under the activity section of the Analytics page) and via email when the import completes.

Resolving Handling Errors

Common Errors

ErrorCauseSolution
Invalid file formatFile is not a valid CSV or headers are missingEnsure the file is properly formatted CSV with all required headers.
Authentication failedSSH key is invalid or username is incorrectVerify your SSH key and username are correct.
Connection refusedHost, port, or credentials are incorrectVerify the host, port, and username. Ensure your SSH key matches the public key in your SFTP account. Check that your IP address is on the allowlist.
Unsupported directoryFile placed in a directory that does not match supported import typesMove the file to a supported directory listed above.
Validation errorsData in the CSV does not meet requirementsDownload the error file from the File uploads details to see specific validation failures.
Partial file uploadFile transfer did not complete before processingEnsure the file transfer completes before the next scheduled processing window. Large files may need more transfer time.

Download Error Reports

If an import fails, download detailed error information from the File uploads section of your dashboard. The error report includes:

  • Line number where the error occurred
  • Field that caused the error
  • Error message explaining what went wrong
  • Suggested corrections for common issues

File Cleanup

Automatic Cleanup

Files placed in unsupported directories (directories that do not match the supported import types) are automatically deleted by Axiom's cleanup process. This prevents the accumulation of incorrectly placed files.

Supported Files Retention

Files placed in supported directories remain on the server after processing. However, subsequent uploads of files with the same name overwrite previous files.

Troubleshooting SFTP Issues

Cannot Connect to the SFTP Server

Check the following:

  1. Ensure you are using the correct hostname from the SFTP account details
  2. Verify your SSH private key matches the public key registered with Axiom
  3. Confirm the username is correct
  4. Check that port 22 is not blocked by your firewall

Files Are Not Being Processed

Check the following:

  1. Ensure the file is placed in a supported directory
  2. Verify the file is a valid CSV with the correct headers
  3. Wait up to 5 minutes for the monitoring system to detect the file
  4. Check the File uploads section in your dashboard for any error messages

Import Completed with Errors

  1. Download the error report from the File uploads section of your dashboard
  2. Review the specific errors for each failed row
  3. Correct the data issues in your source file
  4. Re-upload the corrected file

Authentication Issues

If you receive authentication errors:

  1. Verify you are using the correct username and hostname
  2. Ensure your private key file has the correct permissions (typically chmod 600 ~/.ssh/id_rsa on Linux/macOS)
  3. If issues persist, regenerate your SSH key pair and update your public key through the Axiom supplier portal, or send the new public key to your Axiom administrator
  4. Contact support if authentication continues to fail

Security Considerations

  • Private keys — Never share your SSH private key with anyone, including Axiom support. Treat it like a password.
  • Key permissions — On Linux/macOS, ensure your private key file has restricted permissions (chmod 600 ~/.ssh/id_rsa).
  • Key rotation — Periodically rotate your SSH keys by generating a new key pair and updating the public key through the Axiom supplier portal.
  • Access control — Only authorised personnel should have access to SFTP credentials.
  • Secure storage — Store private keys in a secure location, such as a password manager or encrypted storage.
  • Connection security — Always connect using SFTP (port 22). Never use insecure FTP.

Important Notes

  • Use descriptive filenames — Include dates or version numbers in your filenames (for example, products_2024_12_14.csv).
  • Test with small files first — When setting up SFTP uploads for the first time, test with a small sample file to ensure everything works correctly.
  • Monitor the first few imports — Check the File uploads history to ensure your files are processed as expected.
  • Validate files before upload — Run your own validation checks before uploading to catch errors early.
  • Use consistent directory names — Always use the exact directory names listed in the supported directories table.
  • Schedule uploads during off-peak hours — If uploading large files, consider scheduling uploads when system load is lower.
  • Maintain file format consistency — Use the same CSV structure and headers across all uploads.