Troubleshooting
Find your symptom and follow the checks below. If the problem persists, contact A-Cube support with the upload details.
Where to look first
Check processing results in:
- Email digest (on request): hourly failure details, if A-Cube configured a recipient address. See Email digest and daily report.
- Invoice transfers, where the destination has it: invoices sent through Transfer. Files that failed before invoice creation, XML files with missing fields or excessive size, and skipped duplicates are absent.
- API:
GET /uploadsfor uploads;GET /transfer-documents?status=failedfor failed documents and violations. See Tracking via API and Violations.
An upload stays ingested while processing is in progress. See Statuses and where to see them.
My SFTP login is rejected
Check these points in order:
- Host and port. Connect to
transfer.acubeapi.comon port 22 for either environment. For IP allow lists, use34.252.61.120. - Username. Copy it from your destination page and add
-sandboxfor sandbox. Without-sandbox, you connect to production and need production access. - Email address. SFTP does not accept
+, as inname+test@example.com. Contact A-Cube if your account uses such an address. - Password. Use your A-Cube account password.
- Access. Confirm that A-Cube enabled your destination in the selected environment during onboarding. Sandbox access does not grant production access.
- Rate limit. After 4 failed attempts, login is blocked for 60 seconds, per email address and IP address. Wait 60 seconds before retrying.
Because the username contains @, pass it with -o User=:
sftp -o 'User=<your-email>--it.api.acubeapi.com-sandbox' transfer.acubeapi.com
See Upload via SFTP for connection details.
My REST upload is refused
REST upload works only for destinations that support it. See Destinations.
| Response | Cause | Fix |
|---|---|---|
400, errors is an object | A field is invalid. country is IT or PL. file_name is an ASCII name without / or \, with a supported extension. content is standard base64. The End-to-end ID (e2e_id) accepts up to 255 printable ASCII characters, without leading or trailing spaces. The error keys are country, fileName, content and e2eId. | Correct the field named in errors. |
400, errors is a string | The body is not valid JSON. | Send a JSON object with country, file_name and content. |
401 | The token is missing or invalid. Tokens are valid for 24 hours. | Get a new token from POST https://common.api.acubeapi.com/login, with environment set to sandbox or production. |
403 | Your account has no access to that country for REST upload. SFTP access alone is not enough. | Contact A-Cube. |
409 | transfer_not_configured: Transfer is not set up yet for that country on your account. | Contact A-Cube. |
413 | The request body is over 5 MiB. With base64 encoding, a file can be about 3.75 MiB at most. | Send larger files through SFTP. |
503 | Transfer could not confirm that it stored the file. The body is the receipt. | Read the upload with GET /uploads/{id}. Resend if it is failed. If it stays pending, contact A-Cube before retrying to avoid sending the same invoice twice. |
202 | Transfer created the upload. The receipt contains its id and status pending. | Follow it with GET /uploads/{id}. |
If an upload stays ingested with no documents, check I uploaded a file and nothing happens.
I uploaded a file and nothing happens
Transfer accepts the file before processing it, so results appear later. If no result appears, check these cases:
| Case | What you see | What to do |
|---|---|---|
| The extension or format is not supported | Unrecognized extensions create no upload or email. Other unsupported files can leave an upload ingested, with a possible email: The format of the file uploaded is not supported. | Use a supported format. Export spreadsheets as CSV. For another format, contact A-Cube (Custom). |
The file is in a directory named ignored or supplier | No upload or email. Transfer skips these SFTP directories at any depth. | Upload to another directory. |
| The CSV has only a header row, or only blank rows | No documents and no email. The upload stays ingested. | Add at least one data row. |
| The CSV is completely empty | Violation CSV_EMPTY. | Upload a file with a header and at least one data row. |
| The file was never written | No upload at all. | Check that your client finished the transfer and that you uploaded to the right environment. |
| No email arrives | The hourly digest requires a configured recipient address. Some cases above produce no email. | Check the API or Invoice transfers. To request the digest, contact A-Cube (on request). |
If the upload remains ingested and none of these cases applies, contact A-Cube.
My CSV is rejected
Check the file against the rules of your layout: the standard CSV for Italy or Poland, or the custom CSV layout agreed with A-Cube. Each rule lists the violation code the API returns when the file breaks it.
Also check:
- A wrong separator can also appear as
Input field "<column>" not found in the header. - Spreadsheet exports can change date formatting. Check the exported file in a text editor.
- Destination validation failures return
VALIDATION_ERRORwith the affected field and a message. For example, a 0% VAT rate requires a VAT nature. Correct the field and upload again.
Some rows are missing from the result
Transfer groups CSV rows into invoices by a key column of the format, such as invoice_sequence for Italy. Each invoice produces one document.
If conversion fails, that invoice is not sent. Other invoices in the file continue processing.
- Check the violations of the CSV file: there is one for each failed row.
context.rowidentifies the row, counting the header as row 1. For multi-line invoices, it identifies the invoice's first row. - The upload becomes
partialwhen at least one document was transmitted and at least one failed. If none was transmitted, it becomesfailed. - Query
GET /transfer-documents?status=failedto include the failures in the CSV file. These are absent fromGET /target-documents. - The email includes a row reference, for example
Error transforming row 3 of your CSV file: Input field "X" not found in the header.
Correct the failed rows and upload a new CSV containing only the failed invoices. Resending the full file can transmit successful invoices twice. See The same file is not sent again.
The document is transmitted but the destination rejected it
transmitted means that A-Cube's service for the destination accepted the document. The destination can reject it later, for example SdI for an Italian invoice, and the Transfer status does not change.
If A-Cube's service rejects the document instead, it is failed with VALIDATION_ERROR and never reaches the destination.
Where to read the later outcome depends on the destination. For Italy, see SdI outcome.
The email says "Error during processing of your files"
A-Cube configures the email digest during onboarding. To request it, contact A-Cube.
This subject is used for all failure emails. Read the body for each file's details:
Error message: <message>: one problem for the file.Errors found: <N>: multiple problems, with the first 10 references and messages. CSV references use<file>.csv:row <N>. Use the API for the complete list.Error during file processing: no details in the email. Retrieve the violation through the API or contact A-Cube.violations found, see details in the ACube dashboard or via API: open the invoice's validation errors in Invoice transfers or use the API for full violation details, including codes.
You can receive separate failure and success emails in the same hour. A success email confirms that A-Cube's service accepted the document, not the destination's later outcome.
The same file is not sent again
Transfer skips files it has already sent. The rule, and how to resend on purpose, is under Duplicates on each destination page. A skipped duplicate creates no new entry in Invoice transfers. Before you resend, check that the first invoice was not delivered.
A draft was not sent to SdI
With invoice_draft set to TRUE in an Italian CSV, the invoice is created as a draft and not sent to SdI until you send it through the Italian invoicing API. See Draft invoices.
Contacting A-Cube support: what to include
Contact A-Cube with:
- File name and, if you can share it, the file itself.
- Upload time and time zone, for example
10:32 CESTor08:32 UTC. - Environment: sandbox or production.
- Destination and channel (SFTP or REST API).
- End-to-end ID, if provided, or the upload ID from the REST API receipt or
GET /uploads. - Violation code and message, or the email text.
- For login failures, the username used. Never send your password.