Upload via SFTP
SFTP is available for every destination. Transfer processes the supported files you put in your home directory. To attach an End-to-end ID to an upload, use the REST API.
Connection
| Item | Value |
|---|---|
| Host | transfer.acubeapi.com |
| Port | 22 |
| Static IP | 34.252.61.120 |
| Sandbox and production | The same host. The environment is in your username |
| Protocol | SFTP only. FTPS and FTP are not available |
If your network allows outbound traffic only to known addresses, allow 34.252.61.120.
Username
You get one username for each destination. It starts with your A-Cube account email, and each destination page shows it in full. Add -sandbox at the end for sandbox.
- Each username gives access to one destination in one environment.
- SFTP does not accept email addresses containing
+. If yours contains it, contact A-Cube.
Because the username contains @, pass it to sftp with -o User=:
sftp -o 'User=<your-email>--it.api.acubeapi.com-sandbox' transfer.acubeapi.com
Authentication
Use your A-Cube account password. For SSH key authentication, ask A-Cube to register your public key.
A-Cube grants Transfer and destination access during onboarding.
After login
After signing in, you are in your home directory, shown as /. It contains only the files for that destination and environment.
- Upload to the root or create subdirectories at any depth.
- Transfer processes supported files in any writable directory, except those excluded below.
- Transfer copies your file for processing and leaves it in place. Wait until processing finishes before renaming or deleting it.
| Directory | What happens |
|---|---|
| Root and any other directory | Files in it are processed, if their type is supported. |
ignored/ | Files are not processed. No upload and no document are created. Matching is case sensitive and works at any depth. |
supplier/ | Files are not processed, like ignored/. |
reports/ | A-Cube writes the daily report here, when you request it. A file you upload here is processed like anywhere else. |
File types and names
Transfer processes these files:
| Type | What Transfer does |
|---|---|
.csv | Converts the rows into documents for the destination. See Supported formats. |
.xml | Transmits a document already in the destination format, or converts a UBL invoice, with the format agreed during onboarding. |
.json | Converts a UBL JSON invoice or a custom JSON export, with the format agreed during onboarding. |
.zip | Opens the archive and processes the files inside, as if you had uploaded them one by one. |
.p7m | Opens the signed file and processes the document inside, where the destination accepts P7M. Keep the inner name, for example invoice.xml.p7m. |
.pdf | Only as an attachment to a CSV, where the destination supports it. See PDF attachments for Italy. |
Unsupported files are not processed. You may receive an email with The format of the file uploaded is not supported, and the upload remains open.
Transfer skips files it has already sent. The rule depends on the destination: see Duplicates on each destination page.
For .zip and .p7m files, Transfer tracks the documents inside, rather than the archive itself.
Directories in read-only mode
A-Cube configures this during onboarding. To request it, contact A-Cube.
A-Cube can restrict writes to:
- The root of your home directory. Upload to a writable subdirectory instead.
- Selected subdirectories and all directories below them.
Uploads to a read-only directory fail before Transfer receives the file.
What happens to an upload
Transfer accepts the file after the upload finishes and processes it asynchronously. See How Transfer works and Statuses and where to see them.
Files in your home directory are deleted after 90 days, whether or not they were processed. Download any files you need before they expire. On request, A-Cube can configure earlier deletion of directly uploaded XML files after successful transmission.
Login rejected
Check these causes in order:
- Password. Use your A-Cube account password. Test the same credentials and intended environment with the login request. A failed API login can mean incorrect credentials or missing environment access.
- Access. Your account needs Transfer access and destination access in the selected environment. Ask A-Cube to enable any destination or environment added after onboarding.
- Username. Check the username. The
-sandboxsuffix belongs at the end. Omitting it connects to production; adding it connects to sandbox. - Email address. SFTP does not accept
+in an email address. Contact A-Cube if yours contains it. - Rate limit. After 4 failed attempts, login is blocked for 60 seconds. Wait at least 60 seconds before retrying.
If login still fails, contact A-Cube with your username, environment and the attempt time, including its time zone. Never send your password.