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:
- Create a configuration — Define what type of data you are uploading, the file format, and the processing schedule.
- Create an account — Set up SFTP credentials with an SSH public key linked to your configuration.
- Connect and upload — Use an SFTP client to transfer your CSV files to the Axiom SFTP server.
- Automatic processing — The platform processes uploaded files on the schedule defined in your configuration.
- Review results — Check the File Imports page for import status, errors, and notifications.
Prerequisites
Before you begin, ensure you have:
- An active supplier account on the Axiom platform
- An SSH key pair for authentication (see Generate SSH Keys)
- Data files formatted as CSV (see Supported Import Types)
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
- Open a terminal
- Run the following command:
ssh-keygen -t ed25519 -C "your-email@example.com"
- When prompted, enter a file location or press Enter to accept the default (
~/.ssh/id_ed25519) - Enter a passphrase for added security, or press Enter to skip
- 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)
- Private key —
- Copy the public key:
cat ~/.ssh/id_ed25519.pub
Generate a Key Pair on Windows
- Open PowerShell or Command Prompt
- Run the following command:
ssh-keygen -t ed25519 -C "your-email@example.com"
- Follow the prompts to save the key and set a passphrase
- The public key is saved to
C:\Users\<your-username>\.ssh\id_ed25519.pub - 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
- Navigate to Settings > SFTP > Configurations
- Select + Create Configuration to define the connection parameters, file format, and upload schedule for your SFTP integration
- 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
- Select Save to create the configuration
Creating an SFTP Account
- Navigate to Settings > SFTP > Accounts
- Select + Create Account to set up a new SFTP account with a username, SSH public key, and linked configuration
- 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
- 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
- Open your SFTP client
- 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
- Select Connect
Connect with the Command Line
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 Name | Import Type | Description |
|---|---|---|
product-csv | Product import | Create or update products and variants |
price-list-csv | Price list import | Update pricing information for products |
product-stock-csv | Product stock import | Update stock levels and lead times |
recommendation-rule-csv | Recommendation rules | Configure product recommendations |
restrict-product | Restrict product | Control product visibility per marketplace |
service-csv | Service import | Create 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
| Field | Description |
|---|---|
| Product Identifier | A unique identifier for the product. |
| Name | The product name. Use 1–150 characters. Supports Unicode characters (ASCII recommended). |
| SKU | A unique Stock Keeping Unit. Use your existing SKUs where possible. |
| Brand | The product brand name. |
| Manufacturer | The product manufacturer name. |
| Unit Size | The measure and dimension of your product. See the full list of supported units. |
| Unit Label | The unit of measure that appears on the customer invoice. |
| MPN | The Manufacturer Part Number. |
| UNSPSC | A United Nations Standard Products and Services Code to classify the product. |
Optional CSV Fields for Products
| Field | Description |
|---|---|
| Language Code | The language of the product information (for example, en, de). Defaults to English. |
| Description | A detailed description of your product. A comprehensive description helps show your product to the right customers. |
| Image URL | The URL for a product image. This image appears to potential buyers. |
| Properties | The 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 URL | A link to the product page on your website. |
| Categories | The product categories for classification and search. |
| Type | The product type: simple (no variants) or complex (has variants). |
| Codes | Additional product codes (for example, UPC, EAN). |
| Command | Use 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
| Field | Required | Description |
|---|---|---|
| Type | Yes | Must be product or product_variant. |
| Identifier | Yes | The product or variant identifier. |
| Country | Yes | ISO 3166 Alpha-2 country code (for example, GB, US). |
| Currency | Yes | The currency code (for example, GBP, USD). |
| Price | Yes | The unit price for the product. |
| Billing Scheme | Yes | standard, volume, or graduated. |
| Store ID | No | The store to apply the price to. Leave empty to apply to all connected stores. |
| Catalogue Identifier | No | The catalogue reference for catalogue-specific pricing. |
| Public Price | No | The publicly available list price or RRP. |
| Region | No | ISO 3166 region code for region-specific pricing. |
| Starts At | No | Start date in YYYY-MM-DD format. |
| Ends At | No | End date in YYYY-MM-DD format. |
| Minimum Order Quantity | No | Minimum order amount (must be 1 or greater). |
| Order Quantity Interval | No | Order increment value (must be 1 or greater). |
| Tax Behaviour | No | inclusive or exclusive. |
| Tax Rate | No | Tax percentage (0–100). |
| Command | No | Use 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
| Field | Required | Description |
|---|---|---|
| Type | Yes | Must be product or product_variant. |
| Identifier | Yes | The product or variant identifier. |
| Country Code | Yes* | ISO 3166 Alpha-2 country code. Provide either Country Code or Location Identifier. |
| Location Identifier | Yes* | The stock location identifier. Provide either Country Code or Location Identifier. |
Optional CSV Fields for Stock
| Field | Description |
|---|---|
| Stock | The quantity available for purchase. |
| Always Available | Set to True if the product is always in stock, or False otherwise. |
| Lead Time Days | The number of days from order to delivery dispatch. |
| Height | The shipping height of the product. |
| Height Unit Of Measure | The height unit: cm or in. |
| Length | The shipping length of the product. |
| Length Unit Of Measure | The length unit: cm or in. |
| Width | The shipping width of the product. |
| Width Unit Of Measure | The width unit: cm or in. |
| Weight | The shipping weight of the product. |
| Weight Unit Of Measure | The weight unit: lb or kg. |
| HS Code | The 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
| Field | Description |
|---|---|
| Service Identifier | A unique identifier for the service. |
| Name | The service name. Use 1–150 characters. Supports Unicode characters (ASCII recommended). |
| Service Type | The billing type: fixed or variable. |
| Unit Size | The measure and dimension of your service. See the full list of supported units. |
| Unit Label | The unit of measure that appears on the customer invoice. |
| SKU | A unique SKU for the service. Use your existing SKUs where possible. |
| UNSPSC | A United Nations Standard Products and Services Code (UNSPSC) to classify the service. |
Optional CSV Fields for Services
| Field | Description |
|---|---|
| Description | A description of your service. A detailed description helps show your service to the right customers. |
| Image URL | The URL for a service image. This image appears to potential buyers. |
| Properties | The 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
| Field | Required | Description |
|---|---|---|
| Type | Yes | Must be service. |
| Identifier | Yes | The service identifier. |
| Country | Yes | ISO 3166 Alpha-2 country code (for example, GB, US). |
| Currency | Yes | The currency code (for example, GBP, USD). |
| Price | Yes | The unit price for the service. |
| Store ID | No | The store to apply the price to. Leave empty to apply to all connected stores. |
| Billing Scheme | No | standard (default), volume, or graduated. |
| Starts At | No | Start date in YYYY-MM-DD format. |
| Ends At | No | End date in YYYY-MM-DD format. |
| Minimum Order Quantity | No | Minimum order amount (must be 1 or greater). |
| Tax Behaviour | No | inclusive or exclusive. |
| Command | No | Use 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
- Connect to the SFTP server using your SFTP client and account credentials
- Transfer your CSV file to the root upload directory
- The platform processes uploaded files automatically based on your configuration schedule
Monitoring Upload Status
After uploading a file via SFTP:
- Navigate to the File Imports page in the platform
- Check the import status for your uploaded file
- Select the import row to view details, including:
- Number of successfully imported records
- Number of errors
- Error details with file rows and error messages
- 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
| Error | Cause | Solution |
|---|---|---|
| Invalid file format | File is not a valid CSV or headers are missing | Ensure the file is properly formatted CSV with all required headers. |
| Authentication failed | SSH key is invalid or username is incorrect | Verify your SSH key and username are correct. |
| Connection refused | Host, port, or credentials are incorrect | Verify 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 directory | File placed in a directory that does not match supported import types | Move the file to a supported directory listed above. |
| Validation errors | Data in the CSV does not meet requirements | Download the error file from the File uploads details to see specific validation failures. |
| Partial file upload | File transfer did not complete before processing | Ensure 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:
- Ensure you are using the correct hostname from the SFTP account details
- Verify your SSH private key matches the public key registered with Axiom
- Confirm the username is correct
- Check that port 22 is not blocked by your firewall
Files Are Not Being Processed
Check the following:
- Ensure the file is placed in a supported directory
- Verify the file is a valid CSV with the correct headers
- Wait up to 5 minutes for the monitoring system to detect the file
- Check the File uploads section in your dashboard for any error messages
Import Completed with Errors
- Download the error report from the File uploads section of your dashboard
- Review the specific errors for each failed row
- Correct the data issues in your source file
- Re-upload the corrected file
Authentication Issues
If you receive authentication errors:
- Verify you are using the correct username and hostname
- Ensure your private key file has the correct permissions (typically
chmod 600 ~/.ssh/id_rsaon Linux/macOS) - 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
- 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.
- Overview
- How SFTP Uploads Work
- Prerequisites
- Generating SSH Keys
- Generate a Key Pair on macOS or Linux
- Generate a Key Pair on Windows
- Creating an SFTP Configuration
- Creating an SFTP Account
- Connecting to Your SFTP Account
- Connect with an SFTP Client
- Connect with the Command Line
- Supported Import Types and Directory Structure
- Supported Directories
- Preparing Product Files
- Required CSV Fields for Products
- Optional CSV Fields for Products
- Preparing Product Price Files
- Required CSV Fields for Product Prices
- Preparing Stock Files
- Required CSV Fields for Stock
- Optional CSV Fields for Stock
- Preparing Service Files
- Required CSV Fields for Services
- Optional CSV Fields for Services
- Required CSV Fields for Service Prices
- Uploading Files
- Monitoring Upload Status
- Resolving Handling Errors
- Common Errors
- Download Error Reports
- File Cleanup
- Automatic Cleanup
- Supported Files Retention
- Troubleshooting SFTP Issues
- Cannot Connect to the SFTP Server
- Files Are Not Being Processed
- Import Completed with Errors
- Authentication Issues
- Security Considerations
- Important Notes