Skip to main content

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 /uploads for uploads; GET /transfer-documents?status=failed for 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:

  1. Host and port. Connect to transfer.acubeapi.com on port 22 for either environment. For IP allow lists, use 34.252.61.120.
  2. Username. Copy it from your destination page and add -sandbox for sandbox. Without -sandbox, you connect to production and need production access.
  3. Email address. SFTP does not accept +, as in name+test@example.com. Contact A-Cube if your account uses such an address.
  4. Password. Use your A-Cube account password.
  5. Access. Confirm that A-Cube enabled your destination in the selected environment during onboarding. Sandbox access does not grant production access.
  6. 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.

ResponseCauseFix
400, errors is an objectA 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 stringThe body is not valid JSON.Send a JSON object with country, file_name and content.
401The 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.
403Your account has no access to that country for REST upload. SFTP access alone is not enough.Contact A-Cube.
409transfer_not_configured: Transfer is not set up yet for that country on your account.Contact A-Cube.
413The request body is over 5 MiB. With base64 encoding, a file can be about 3.75 MiB at most.Send larger files through SFTP.
503Transfer 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.
202Transfer 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:

CaseWhat you seeWhat to do
The extension or format is not supportedUnrecognized 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 supplierNo 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 rowsNo documents and no email. The upload stays ingested.Add at least one data row.
The CSV is completely emptyViolation CSV_EMPTY.Upload a file with a header and at least one data row.
The file was never writtenNo upload at all.Check that your client finished the transfer and that you uploaded to the right environment.
No email arrivesThe 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_ERROR with 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.row identifies the row, counting the header as row 1. For multi-line invoices, it identifies the invoice's first row.
  • The upload becomes partial when at least one document was transmitted and at least one failed. If none was transmitted, it becomes failed.
  • Query GET /transfer-documents?status=failed to include the failures in the CSV file. These are absent from GET /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"​

Available on request

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 CEST or 08: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.