Formats
Send invoices in the format your ERP already exports. A-Cube converts them to FatturaPA when needed.
- Standard CSV format, with draft invoices and PDF attachments
- FatturaPA XML
- UBL invoices
- Your own format
Standard CSV format
Start from the sample file and follow these rules:
| Rule | Value | Violation |
|---|---|---|
| Header row | Keep the sample's header as it is. Some columns must be in the header even when their values are empty: a missing one causes a violation that names it. | INPUT_FIELD_MISSING |
| Separator | , | CSV_SEPARATOR_MISMATCH |
| Dates | d/m/Y, for example 05/05/2026. | INPUT_DATE_FORMAT |
| Numbers | Dot as decimal separator, no thousands separator: 1234.50. | None |
| Structure | Every row has the same number of columns. " around a value that contains the separator, \ as escape character. | CSV_PARSE_ERROR |
| Encoding | UTF-8. Windows-1252 is converted automatically. | CSV_ENCODING |
| Maximum size | 500 data rows per file. Blank rows do not count. The limit counts rows, not invoices. | CSV_SIZE_EXCEEDED |
| Cells | No line break inside a cell. A cell with only spaces or - is empty. | None |
How rows become invoices:
- Rows with the same
invoice_sequenceform one invoice. A file can contain several invoices. - Within an invoice, rows with the same
line_numberform one line. - A-Cube reads buyer, dates, number, subject and payment from the first non-empty value of the invoice. Repeat them on every row.
- Each invoice has one payment. Multiple payment installments are not supported.
invoice_sequence,invoice_draft,self_invoice,recipient_pec,recipient_code,recipient_country,recipient_vat_number,recipient_fiscal_code,recipient_business_name,recipient_name,recipient_last_name,recipient_address,recipient_postal_code,recipient_city,recipient_province,document_type,invoice_subject,invoice_date,invoice_series,invoice_number,line_number,line_description,line_unit_price,line_quantity,line_vat_rate,line_vat_nature,split_payment,payment,payment_iban,payment_due_date
1,FALSE,FALSE,,ABCDEFG,IT,12345678901,,Company name 1,,,Via Xyz 1,12345,Milano,MI,TD01,Consulting,05/05/2026,,QS-1,1,Buoni pasto,8.00,118,4,,FALSE,MP05,,05/06/2026
1,FALSE,FALSE,,ABCDEFG,IT,12345678901,,Company name 1,,,Via Xyz 1,12345,Milano,MI,TD01,Consulting,05/05/2026,,QS-1,2,Service fee,100.00,1,22,,FALSE,MP05,,05/06/2026
2,TRUE,FALSE,,ABCDEFG,IT,98765432120,,Company name 2,,,Via Xyz 1,12345,Milano,MI,TD01,,05/05/2026,,QS-2,1,Subscription,53.55,1,22,,FALSE,MP08,,
This file creates two invoices: one with two lines and one draft.
A-Cube configures your seller data during onboarding, so the CSV contains only buyer data. For every column, the CSV to FatturaPA mapping reference shows the FatturaPA field it fills, how A-Cube converts it, and the values A-Cube calculates for you, such as the VAT summary and the invoice total.
Draft invoices
Set invoice_draft to TRUE to create the invoice as a draft in A-Cube's SdI service. The document reaches transmitted, but the invoice is not sent to SdI until you send it through the Italian invoicing API. Only TRUE creates a draft, in any letter case. For an invoice with several rows, the first row counts.
PDF attachments
Send attachments through SFTP. Upload the PDF before its CSV, in the same directory, with a name that starts with the CSV name without its extension:
invoices_2026_01.csv
invoices_2026_01_contracts.pdf
A-Cube attaches the PDF to every invoice in that CSV. It keeps its file name and the format PDF, and counts toward the 5 MB limit of each invoice.
FatturaPA XML
A-Cube sends your FatturaPA XML as it is, up to 5 MB, after transliterating non-ASCII characters.
UBL invoices
A-Cube configures this during onboarding. To request it, contact A-Cube.
A-Cube converts UBL invoices with invoice type code 380 to FatturaPA. Other type codes fail with a violation. See the UBL to FatturaPA mapping reference for each field.
Your own format
A-Cube builds it for you. To request it, contact A-Cube.
If your export differs from the standard CSV format, A-Cube builds a custom CSV format for your layout, so you keep your existing export.