Simulate daily receipt reports massive download
In the sandbox environment the daily receipt reports massive download does not reach the "Cassetto Fiscale":
you can simulate it with POST /simulate/jobs/daily-receipt-report-download, which takes the same payload as
POST /jobs/daily-receipt-report-download
plus an optional type.
The simulation runs once and straight away, inside the request:
- it stores one report per day for the last 3 days of the requested period, all of the requested type;
- it creates a job that you can read with
GET /jobs, already in statuscompleted; - it sends the usual
jobwebhook to your configured endpoints.
It does not create any schedule, and the "Cassetto Fiscale" credentials and the download subscription are not needed.
Example:
curl -X POST
https://api-sandbox.acubeapi.com/simulate/jobs/daily-receipt-report-download
-H 'Authorization: Bearer <Your Bearer token here>'
-H 'Content-Type: application/json'
-d '{
"from_date": "2026-10-01",
"to_date": "2026-10-17",
"fiscal_id": "12345678901",
"type": "DA"
}'
The API returns a 201 Created response with the job and the stored reports, here the ones of the 15th, 16th and 17th of October:
{
"job": "0199f3a2-7c1e-7a4b-9d2e-3f5a6b7c8d9e",
"daily_receipt_reports": [
"0199f3a2-7c20-7e11-8a3b-1c2d3e4f5a6b",
"..."
]
}
A period shorter than 3 days stores one report for each of its days.
Types
type is optional and defaults to RT, the only type downloaded by POST /jobs/daily-receipt-report-download.
Any other value than the ones below returns a 400 Bad Request response.
| Type | Simulated report |
|---|---|
RT | DatiRT block of a telematic cash register, with the totals per VAT rate and the payments |
MC | Same DatiRT block, sent by a multi-till device |
DA | DatiDA block of a vending machine, with the period between two collections and the device position |
DC | DatiDC block with the daily totals of the online commercial documents ("documenti commerciali on-line") |
The XML files are made up but consistent: the VAT is 22% of the amount, and the cash and electronic payments add up to the total.
The simulated reports
The reports are available through GET /daily-receipt-reports
like any downloaded report, and can be filtered by type:
{
"uuid": "0199f3a2-7c20-7e11-8a3b-1c2d3e4f5a6b",
"fiscal_id": "12345678901",
"date": "2026-10-17",
"type": "DA",
"file_name": "DA_99SBXDA0001_20261017.xml",
"created_at": "2026-10-21T10:00:00+00:00"
}
GET /daily-receipt-reports/{uuid} with the Accept: application/xml
header returns the XML file, for example a report of type RT:
<n1:DatiCorrispettivi xmlns:n1="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/corrispettivi/dati/v1.0" versione="COR10">
<Trasmissione>
<Progressivo>290</Progressivo>
<Formato>COR10</Formato>
<Dispositivo>
<Tipo>RT</Tipo>
<IdDispositivo>99SBX000001</IdDispositivo>
</Dispositivo>
<CodiceFiscaleEsercente>12345678901</CodiceFiscaleEsercente>
<PIVAEsercente>12345678901</PIVAEsercente>
<DataOraTrasmissione>2026-10-17T21:00:00+02:00</DataOraTrasmissione>
</Trasmissione>
<DataOraRilevazione>2026-10-17T20:58:00+02:00</DataOraRilevazione>
<DatiRT>
<Riepilogo>
<IVA>
<AliquotaIVA>22.00</AliquotaIVA>
<Imposta>643.93</Imposta>
</IVA>
<Ammontare>2926.97</Ammontare>
<ImportoParziale>2926.97</ImportoParziale>
</Riepilogo>
<Totali>
<NumeroDocCommerciali>67</NumeroDocCommerciali>
<PagatoContanti>3277.05</PagatoContanti>
<PagatoElettronico>293.85</PagatoElettronico>
</Totali>
</DatiRT>
</n1:DatiCorrispettivi>
The file name only depends on the type and the day: running the simulation again over an overlapping period finds the reports already stored instead of creating new ones.
Validation
The payload is validated as in POST /jobs/daily-receipt-report-download:
from_datecannot be earlier than the 1st of January of the previous year, andto_datecannot be later than today;scheduled_atis optional and cannot be in the past. It is saved on the job, but the simulation runs immediately anyway;fiscal_idmust belong to a Business Registry Configuration of your account;from_date,to_dateandfiscal_idare required, andto_datecannot be earlier thanfrom_date.
An invalid payload returns a 400 Bad Request response listing the offending fields in violations.
Simulate a failed download
POST /simulate/jobs/daily-receipt-report-download/error takes the same payload, stores no report and creates the job in status error.
Your endpoints receive the job-error webhook. The response contains only the job:
{
"job": "0199f3a2-7c1e-7a4b-9d2e-3f5a6b7c8d9e"
}