SFTP Orders Upload

This document is for new or current Northbeam customers who wish to send Orders through to us without using either our Orders API or native Shopify connector.

First, you need to request access to SFTP Orders upload - please request a login from your Northbeam contact and a User and Password will be assigned to you.

Host: sftp.robot.northbeam.io
User: XXX_orders
Password: XXX
Port: 22

Using your preferred method, connect to your Northbeam SFTP instance with the above details

After accessing the SFTP server for the first time, you will be greeted with an empty directory, simply place the desired .CSV files into the folder and the upload will begin.

Each file must be formatted with the following template - this must be adhered to or the upload will fail.

https://docs.google.com/spreadsheets/d/193PYzhk2DamT6DTdiZMrY8U3nWJ03LLlTh9cPE_XASI/edit?usp=sharing

Key Limitations:

The file must not be more than 200mb in size or over

In the case an upload fails, a failure.txt file will appear in your SFTP directory that will contain error messages about the failed upload.

An example of how this failure appears would be:

Validation Error Report
File: orders_uploads/925160f8-ecc3-4457-8c3e-b75fe5dbf0ac/broken_file_sample.csv
Client ID: 925160f8-ecc3-4457-8c3e-b75fe5dbf0ac
Timestamp: 2026-01-30T18:10:18.917640Z
Total Invalid Orders: 3
================================================================================
Row 1:
  Order ID: O12345
  Customer ID: 
  Validation Errors:
    - Field: customer_id
      Type: string_too_short
      Message: String should have at least 1 character
Row 3:
  Order ID: O726883481
  Customer ID: 815186642
  Validation Errors:
    - Field: time_of_purchase
      Type: value_error
      Message: Value error, Invalid ISO TS
Row 4:
  Order ID: O7292339997
  Customer ID: 812197138
  Validation Errors:
    - Field: currency
      Type: string_too_short
      Message: String should have at least 3 characters

Under the hood, this service simply take the CSV file provided, splits it into appropriate batches and uploads it through our traditional Orders API.