Gestione completa del ciclo attivo e passivo.
import { ArubaClient } from '@fatturazione-elettronica-aruba/core';
import { InvoicesClient } from '@fatturazione-elettronica-aruba/invoices';
const client = new ArubaClient({ environment: 'demo' });
await client.auth.signin('username', 'password');
const invoices = new InvoicesClient(client.http);
Aruba firma automaticamente:
import { encodeBase64 } from '@fatturazione-elettronica-aruba/utils';
const result = await invoices.upload({
dataFile: encodeBase64(xmlContent),
});
console.log('Filename:', result.uploadFileName);
Per fatture gia firmate (.p7m o XAdES):
const result = await invoices.uploadSigned({
dataFile: encodeBase64(signedContent),
});
const result = await invoices.upload({
dataFile: encodeBase64(xmlContent),
credential: 'credential_id', // Firma remota
domain: 'domain_id',
senderPIVA: '01234567890', // Per TD26
skipExtraSchema: true,
dryRun: true, // Solo validazione
});
const result = await invoices.findSent({
creationStartDate: '2024-01-01T00:00:00.000Z',
creationEndDate: '2024-01-02T00:00:00.000Z',
status: 'Consegnata',
documentType: 'TD01',
page: 0,
size: 50,
});
for (const invoice of result.content) {
console.log(`${invoice.filename}: ${invoice.invoices[0]?.status}`);
}
const detail = await invoices.getSentDetail({
id: '12345',
includePdf: true,
includeFile: true,
});
const result = await invoices.findReceived({
creationStartDate: '2024-01-01T00:00:00.000Z',
creationEndDate: '2024-01-02T00:00:00.000Z',
});
const detail = await invoices.getReceivedDetail({
id: '12345',
includeUnsignedFile: true,
});
Entro 15 giorni dalla ricezione:
// Accettazione
await invoices.sendEsitoCommittente({
filename: 'IT09876543210_00001.xml',
sdiId: '1234567890',
esito: 'EC01',
});
// Rifiuto
await invoices.sendEsitoCommittente({
filename: 'IT09876543210_00001.xml',
sdiId: '1234567890',
esito: 'EC02',
descrizione: 'Importo non corretto',
});
// ZIP
const zip = await invoices.getSentZip({ id: '12345' });
// PDD
const pdd = await invoices.getSentPdd({ id: '12345' });
// Download massivo
const job = await invoices.downloadSent(['12345', '12346'], ['xml', 'pdf']);
const result = await invoices.getDownload(job.jobId);
| Stato | Descrizione |
|---|---|
Inviata | In attesa di elaborazione SDI |
Consegnata | Consegnata al destinatario |
Scartata | Scartata per errori |
Accettata | Esito EC01 ricevuto |
Rifiutata | Esito EC02 ricevuto |
Decorrenza Termini | Nessun esito entro 15 giorni |