SFTP and file exchange
Most German B2B integration is still files. That is not a lesser option — a folder, a naming convention and a schedule is a working integration, and it is frequently the one that is still running unchanged in five years.
What you get
The platform runs a managed SFTP service for your tenant. Your systems connect to a host of the form:
<your-tenant-slug>.share.revenexx.com
with a login username, over SFTP. The storage behind it is hosted in Germany, which matters for the DSGVO conversation about a file containing customer data.
Two things it deliberately is not: FTP and SMB are not offered. Plain FTP sends credentials in the clear and has no place carrying your order data; if your ERP vendor insists it only speaks FTP, the answer is a small transfer agent on your side, not an unencrypted channel.
Provision an account
Go to Data Exchange › SFTP Server and create a new account.
- Choose a username. Lowercase letters, digits and hyphens. Name it for the
system, not the person —
erp,wms,bi,supplier-hoffmann. - The login becomes
<tenant>-<username>. That is what the connecting system uses, not the bare username. Getting this wrong is the most common first-connection failure. - Leave the password empty to have a strong one generated, or set your own — 12 to 128 characters with an upper case letter, a lower case letter, a digit and a special character.
- Provision, then open the account to see the Host, Login, Password and Home directory. The password can be revealed again from here, and rotated with Generate new password.
One account per system. Same reasoning as one key per integration: you want to be able to disable the supplier's access without stopping your own ERP.
Folder conventions that survive
The single decision that determines whether this is still comprehensible in four years. Agree it before the first file lands.
A layout that works:
/in/orders/ files your systems send to the platform
/in/prices/
/in/stock/
/out/orders/ files the platform produces for your systems
/out/invoices/
/archive/ processed files, moved here after a successful run
/error/ files that failed, kept for inspection
And a naming convention with four parts:
prices_full_20270312_0200.csv
<what>_<full|delta>_<yyyymmdd>_<hhmm>.<ext>
Four rules that prevent the usual problems:
- Never overwrite. A file named
prices.csvthat is replaced nightly gives you nothing to look at when Tuesday's prices were wrong. - Move, do not delete. Processed files go to
/archive/, failures to/error/. A file you can re-run is a five-minute fix; a file that is gone is an evening. - Write to a temporary name and rename on completion, or use a marker file. Otherwise a scheduled import will happily read a half-written file, and a half-written price file is worse than no price file.
- Say in the name whether it is a full load or a delta. The recovery behaviour is completely different — see Integration patterns.
Wire a file to an import
The folder alone does nothing. Two pieces connect it to your data:
- An import or export profile under Data Exchange › Import & Export describes the file's structure and its mapping — which column becomes which field, and which fields the file is not allowed to touch. See Field mapping.
- A schedule runs the profile against the folder. Build it as a workflow — see Build a workflow — with a trigger, the import step, and a move-to-archive or move-to-error step at the end.
The first time you run any new file, use the Staging (preview first) option rather than loading straight into live data. It puts the result in a preview area so you can look at what would have happened before it happens. The ten minutes this costs is the cheapest insurance in this whole area.
Storage Sync is the related tool for a different job: scheduled rules that pull files from the SFTP storage into the media library, which is how supplier image drops get into the catalog without anybody uploading anything by hand.
Notifications on failure
A file integration that fails silently is worse than no integration, because everyone downstream keeps believing the data is current.
Set up three alerts and route them to a team address, never a person:
| Condition | Why it matters |
|---|---|
| A scheduled run failed | The obvious one |
| A run succeeded but rejected rows | The dangerous one — a partly-loaded price file looks like success |
| No file arrived by the expected time | The one everybody forgets |
The third is the important one. If the ERP job that writes the file dies, no import fails — nothing happened at all. A missing-file alarm is the only thing that catches it, and without it your catalog quietly serves last week's prices.
See Monitor your syncs.
What to check
- Connect once by hand with an SFTP client, using
<tenant>-<username>, and confirm you land in the home directory. - Drop a small test file and watch the scheduled run pick it up, process it, and
move it to
/archive/. - Drop a deliberately broken file and confirm it lands in
/error/and raises the alert. - Confirm nothing is writing a field it does not own.
Next
- Bulk exports — the outbound half, including nightly BI extracts.
- Monitor your integrations — the daily read once this is live.
Set up webhooks
Subscribe your system to platform events: picking topics from the catalogue, the headers a delivery carries, and how your integrator verifies the signature so the endpoint does not accept anyone's POST.
Set up a sandbox
Request the tenant, seed it with a catalog nobody can be identified from, issue disposable keys, and agree the refresh cadence before the integrator starts.