Guides

Invoices

Send and receive electronic invoices

Invoices

Complete management of active and passive invoice cycles.

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

Send Invoices

Unsigned Invoice

Aruba signs automatically:

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

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

Signed Invoice

For already signed invoices (.p7m or XAdES):

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

Search Sent Invoices

const result = await invoices.findSent({
  creationStartDate: '2024-01-01T00:00:00.000Z',
  creationEndDate: '2024-01-02T00:00:00.000Z',
  status: 'Consegnata',
  page: 0,
  size: 50,
});

Received Invoices

const result = await invoices.findReceived({
  creationStartDate: '2024-01-01T00:00:00.000Z',
  creationEndDate: '2024-01-02T00:00:00.000Z',
});

Acceptance/Rejection Outcome

Within 15 days of receipt:

// Accept
await invoices.sendEsitoCommittente({
  filename: 'IT09876543210_00001.xml',
  sdiId: '1234567890',
  esito: 'EC01',
});

// Reject
await invoices.sendEsitoCommittente({
  filename: 'IT09876543210_00001.xml',
  sdiId: '1234567890',
  esito: 'EC02',
  descrizione: 'Incorrect amount',
});

Invoice Status

StatusDescription
InviataAwaiting SDI processing
ConsegnataDelivered to recipient
ScartataRejected for errors
AccettataEC01 outcome received
RifiutataEC02 outcome received
Decorrenza TerminiNo outcome within 15 days