Guide

Fatture

Invio e ricezione fatture elettroniche

Fatture

Gestione completa del ciclo attivo e passivo.

Setup

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);

Invio Fatture

Fattura Non Firmata

Aruba firma automaticamente:

import { encodeBase64 } from '@fatturazione-elettronica-aruba/utils';

const result = await invoices.upload({
  dataFile: encodeBase64(xmlContent),
});

console.log('Filename:', result.uploadFileName);

Fattura Firmata

Per fatture gia firmate (.p7m o XAdES):

const result = await invoices.uploadSigned({
  dataFile: encodeBase64(signedContent),
});

Opzioni Upload

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
});

Ricerca Fatture Inviate

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}`);
}

Dettaglio

const detail = await invoices.getSentDetail({
  id: '12345',
  includePdf: true,
  includeFile: true,
});

Fatture Ricevute

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,
});

Esito Committente

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',
});

Download

// 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);

Stati Fattura

StatoDescrizione
InviataIn attesa di elaborazione SDI
ConsegnataConsegnata al destinatario
ScartataScartata per errori
AccettataEsito EC01 ricevuto
RifiutataEsito EC02 ricevuto
Decorrenza TerminiNessun esito entro 15 giorni