API Reference / Fatturazione

Fatturazione

Fatturazione elettronica (FatturaPA) via provider esterno: i dati fiscali del cliente vivono sul record (account o contatto), il profilo emittente a livello di istanza, e da una trattativa si emette la fattura nel provider e se ne segue lo stato. L'uso operativo è descritto nella guida alla fatturazione.

Endpoint
MetodoEndpointPermessoCosa fa
GET/api/billing/:module/:idread sul moduloBlocco fiscale del record.
PUT/api/billing/:module/:idupdate sul moduloSalva il blocco fiscale.
GET/api/billing/profileadminProfilo emittente (cedente/prestatore).
PUT/api/billing/profileadminSalva il profilo emittente.
POST/api/billing/test/:idadminTesta la connessione del provider di fatturazione (:id = connessione).
POST/api/billing/deals/:id/invoiceupdate su dealsEmette la fattura della trattativa nel provider.
GET/api/billing/deals/:id/invoice-statusread su dealsStato live (pagamento + SDI) della fattura.
GET/api/billing/invoicesread su dealsLe fatture emesse.

01Dati fiscali del cliente

PUT /api/billing/:module/:id bearer richiesto

Il blocco fiscale (cessionario/committente) di un record. :module può essere solo accounts o contacts (altri moduli → 400 «Modulo non fatturabile»). La validazione al salvataggio è lenient: normalizza e rifiuta solo i valori malformati presenti, così puoi compilare il profilo progressivamente: il controllo «tutti i campi obbligatori» avviene all'emissione.

Body · campi principali
CampoTipoDescrizione
tipo_soggettostringprivato, azienda (default) o pa.
denominazione / nome + cognomestringRagione sociale (azienda/PA) oppure nome e cognome (privato).
partita_iva · codice_fiscalestringIdentificativi fiscali; id_paese ISO-2 (default IT).
codice_destinatariostringCodice SDI a 7 caratteri, in alternativa a pec_destinatario.
codice_univoco_ufficiostringPer la PA: codice ufficio a 6 caratteri.
sedeobject{ indirizzo, numero_civico, cap, comune, provincia, nazione }: CAP numerico, provincia/nazione a 2 lettere.
metodo_pagamentostringCodice modalità di pagamento FatturaPA (es. MP05).
Risposta · 200
json
{ "success": true, "data": { "eInvoice": { "tipo_soggetto": "azienda", "denominazione": "ACME S.r.l.",  } } }

La GET sullo stesso path restituisce il blocco salvato (eInvoice: null se non ancora compilato). Lo scope del record vale come per le altre letture: un record fuori scope → 404.

02Emissione e stato

POST /api/billing/deals/:id/invoice bearer richiesto

Compone la fattura dalla trattativa (le righe prodotti/servizi del deal + il blocco fiscale del cliente + il profilo emittente) e la crea nel provider di fatturazione configurato. È un'operazione create-only: la fattura NON viene inviata allo SDI da qui: l'invio si finalizza nel gestionale del provider. Se mancano dati fiscali obbligatori la risposta è 422 con l'elenco di cosa manca; una doppia emissione sullo stesso deal viene rifiutata.

GET /api/billing/deals/:id/invoice-status bearer richiesto

Interroga il provider per lo stato corrente della fattura del deal: stato di pagamento e stato SDI (consegna al destinatario).

Nota

Il provider si configura come connessione (vedi Connessioni) e si verifica con POST /api/billing/test/:id. Le credenziali sono cifrate at-rest come tutte le connessioni.