Ecco come accettare pagamenti in stablecoin e farsi comunque pagare in euro: emetti una fattura con prezzo in EUR, il pagatore invia l'importo corrispondente in USDC a un indirizzo creato per quella sola fattura, e un partner autorizzato lo converte e paga gli euro sul tuo IBAN. La parte del checkout richiede una sola chiamata API. Le decisioni che contano stanno intorno ad essa: per quanto tempo la fattura resta aperta, cosa fai quando il pagatore invia un importo insufficiente e come il tuo sistema degli ordini viene a sapere che il denaro è arrivato.
Questa guida illustra il flusso della fattura dal punto di vista di entrambe le parti, con schermate della dashboard di ItisPay con dati dimostrativi.
In sintesi
- Imposti il prezzo in EUR; l'importo in USDC viene calcolato dal tasso corrente e mostrato in fattura.
- Ogni fattura ha un proprio indirizzo, un conto alla rovescia e uno stato: new, pending, paid_partial, completed, expired o cancelled.
- Un pagamento parziale non fa fallire la fattura: viene registrato per ogni trasferimento e lo stato diventa paid_partial.
- Ai sensi di MiCA, lo scambio di cripto-attività con euro è un servizio autorizzato, quindi il regolamento sul tuo IBAN avviene tramite un prestatore di servizi per le cripto-attività (CASP) autorizzato.
Come accettare pagamenti in stablecoin nell'UE: cosa ti serve?#
Ti servono tre elementi: una stablecoin emessa in linea con MiCA, un'impresa autorizzata che la converte in euro e un software che abbina ogni pagamento a un ordine. Accettare la moneta è facile. Convertirla in euro sul tuo conto è la parte regolamentata.
Il Regolamento sui mercati delle cripto-attività (MiCA, regolamento (UE) 2023/1114) si applica alle stablecoin dal 30 giugno 2024 e integralmente dal 30 dicembre 2024. Ai sensi dell'art. 48, solo un ente creditizio autorizzato o un istituto di moneta elettronica può emettere un e-money token, termine MiCA per una stablecoin legata a un'unica valuta ufficiale.
USDC rientra in questa categoria: il registro MiCA provvisorio dell'ESMA elenca Circle Internet Financial Europe SAS come emittente di USDC e EURC, autorizzata dall'ACPR francese il 1° luglio 2024. USDT non compare in quel registro degli emittenti autorizzati (al 5 novembre 2026).
Lo scambio di cripto-attività con euro è un servizio per le cripto-attività. L'art. 59 di MiCA lo consente solo a un prestatore di servizi per le cripto-attività (CASP) autorizzato o a determinate imprese finanziarie, come banche e imprese di investimento, che notificano la propria autorità di vigilanza ai sensi dell'art. 60. Un commerciante ha due strade: ottenere una propria licenza CASP, oppure operare tramite un fornitore che ne possiede già una.
Come funziona una fattura in stablecoin, passo dopo passo?#
Una fattura in stablecoin è una richiesta di pagamento con importo fisso, un proprio indirizzo e una scadenza. Il tuo sistema la crea, il pagatore la salda e un cambio di stato ti segnala quando spedire. Ecco il percorso completo per un ordine da 250 EUR pagato in USDC.
- Crei la fattura. Il tuo checkout invia l'ID dell'ordine, il prezzo in EUR e la criptovaluta che vuoi (USDC). In ItisPay la chiamata è `POST /invoices`; nella dashboard è un modulo breve.
- L'importo viene convertito. L'API calcola l'importo in USDC dal prezzo in EUR usando i tassi correnti. Nella demo qui sotto, 250 EUR diventano 279,2846 USDC.
- Viene assegnato un indirizzo. La fattura riceve un proprio indirizzo blockchain su una rete indicata, più un codice QR. Poiché l'indirizzo è legato alla fattura, il trasferimento in entrata rimanda all'ordine.
- Il pagatore invia USDC. Vede l'importo esatto, la rete e un conto alla rovescia, e paga dal proprio wallet o dal conto presso un exchange.
- Lo stato cambia. La fattura parte come new e passa, ad esempio, a pending, completed, paid_partial o expired. Se hai indicato un URL di callback, gli aggiornamenti di stato vengono inviati al tuo server come webhook.
- Gli euro arrivano sul tuo IBAN. Il regolamento in EUR sul tuo IBAN avviene tramite il partner autorizzato, oppure le stablecoin restano presso di lui.

| Fase | Chi agisce | Cosa succede |
|---|---|---|
| Crea | Sistema del commerciante | ID dell'ordine, prezzo in EUR e criptovaluta inviati all'API |
| Converte | ItisPay | Importo in USDC calcolato al tasso corrente |
| Paga | Pagatore | Importo esatto in USDC inviato all'indirizzo della fattura |
| Conferma | ItisPay | Trasferimento rilevato, stato aggiornato, webhook inviato |
| Regola | Partner autorizzato | USDC scambiati, EUR accreditati sull'IBAN del commerciante |
La divisione nelle ultime due righe è rilevante per la compliance. ItisPay è il livello software: fatture, stati, notifiche, riconciliazione. La custodia dei fondi, il loro cambio e il pagamento in euro spettano al partner autorizzato.
Cosa vede il pagatore sulla pagina di pagamento?#
Il pagatore vede un'unica schermata con tutto il necessario per pagare senza doverti fare domande: chi lo sta addebitando, l'importo esatto in USDC, l'indirizzo, la rete e il tempo rimasto. La parte destra dello screenshot qui sopra mostra questa vista.
In alto c'è un conto alla rovescia, nella demo 1 ora e 59 minuti. Sotto ci sono il nome del negozio, l'indirizzo con l'istruzione di inviare l'importo esatto in USDC sulla rete indicata, un pulsante di copia per l'importo e i dettagli di pagamento: importo della fattura in EUR, valuta, rete e stato, che inizia come in attesa di pagamento.
Fai attenzione alla riga della rete. USDC esiste su più blockchain, e un trasferimento inviato su una rete diversa da quella indicata in fattura non verrà accreditato alla fattura e potrebbe non essere recuperabile. Se costruisci una tua schermata di pagamento, riporta la rete in caratteri grandi accanto all'importo.
La pagina di pagamento mostra i dettagli completi solo finché il pagamento è ancora possibile. L'endpoint pubblico delle fatture di ItisPay restituisce tutto per le fatture in stato new, pending o paid_partial. Una volta che una fattura è completed, expired o cancelled, restituisce solo l'ID e lo stato, quindi un vecchio link non mostra più un indirizzo a cui pagare.
Come viene calcolato l'importo in USDC da un prezzo in euro?#
Fissi il prezzo in euro, e la fattura mostra l'equivalente in USDC al tasso corrente al momento della creazione. Al pagatore viene chiesta quella cifra esatta, quindi la tua contabilità parte da un importo in EUR noto.
Nell'API di ItisPay invii `fiat_amount` con `fiat_currency` impostato su EUR, che al momento è l'unica valuta fiat supportata, e l'API restituisce l'importo in cripto-attività. Puoi invece fatturare un importo fisso in cripto-attività, ma non entrambi nella stessa fattura.
L'endpoint dei tassi restituisce i tassi correnti in EUR, se vuoi mostrare una stima prima del checkout. USDC segue il dollaro statunitense, quindi l'importo in USDC per un prezzo in EUR si muove con il tasso EUR/USD, e una scadenza breve limita quanto il tasso può variare prima che il pagatore paghi.
Per quanto tempo deve restare aperta una fattura in cripto-attività?#
Abbastanza a lungo perché il pagatore apra un wallet e invii, abbastanza breve perché il tasso in fattura resti equo. Nella dashboard di ItisPay il campo di scadenza è precompilato con 120 minuti; tramite API lo imposti per ogni fattura con `expire_min`.
Adatta la finestra alla situazione. Un checkout online in cui il pagatore è già davanti allo schermo può usare una scadenza più breve. Una fattura B2B inviata via email a un team finanziario che paga in lotti richiede tempi più lunghi. Quando il tempo scade, lo stato diventa expired e la pagina di pagamento smette di mostrare l'indirizzo. Se un ordine viene annullato prima del pagamento, annulla la fattura tramite API invece di lasciarla scadere, così i tuoi registri mostrano perché si è chiusa.
Cosa succede quando il pagatore invia un importo troppo basso o la moneta sbagliata?#
Un pagamento parziale non fa fallire la fattura. La sposta in paid_partial e registra il trasferimento, e la pagina di pagamento resta aperta per il resto. Le fatture di ItisPay supportano più transazioni per fattura, ciascuna con il proprio importo, hash di transazione e stato.
Piccole differenze capitano. Alcuni exchange detraggono la commissione di prelievo dall'importo inviato, e i pagatori a volte arrotondano la cifra, quindi può arrivare 279,28 invece di 279,2846. L'impostazione `allowed_error_percent` (da 0 a 100) è l'errore di pagamento, in percentuale, che la fattura consente; se la ometti, si applica un valore predefinito del sistema. Se la imposti troppo stretta, rincorri i centesimi; se la imposti troppo larga, regali margine sugli ordini grandi.
La fattura registra anche ciò che è effettivamente arrivato. `actual_crypto_amount_paid` contiene l'importo ricevuto, e `currency_paid` indica quando il pagatore ha usato una moneta diversa da quella richiesta in fattura, ad esempio USDT invece di USDC. Metti per iscritto le tue regole per questi casi prima che se ne presenti il primo.
| Stato | Significato | Esito |
|---|---|---|
| new | Fattura creata, nessun importo ancora ricevuto | No |
| pending | Pagamento in corso, non ancora regolato come pagato | No |
| paid_partial | Ricevuta una parte dell'importo | Dipende |
| completed | Fattura pagata | Sì |
| expired | Tempo scaduto prima del pagamento integrale | No |
| cancelled | Chiusa da te, ad esempio un ordine annullato | No |
La colonna Esito risponde a una domanda: puoi spedire l'ordine? Per paid_partial la risposta dipende dalla tua policy: attendere il resto, chiedere al pagatore di integrare, oppure accettare l'importo e adattare l'ordine.
Come diventano euro sul tuo IBAN le stablecoin?#
Tramite il partner autorizzato, che paga euro sul tuo IBAN oppure detiene le stablecoin se vuoi conservarle. ItisPay fornisce l'API, la fatturazione e la riconciliazione; il regolamento in EUR avviene tramite il nostro partner autorizzato nell'UE come prestatore di servizi per le cripto-attività (CASP) + istituto di pagamento.
Prima del primo pagamento, il partner esegue la KYB sulla tua attività, un controllo sulla conoscenza dell'impresa riguardo a proprietà, amministratori e attività. KYC, AML e IBAN sono gestiti dal partner, quindi lo scambio regolamentato è svolto da un'impresa autorizzata e non da te. Se ti servono anche conti in euro in entrata per cliente o per mercato, gli IBAN virtuali arrivano dallo stesso partner.
Il denaro può anche uscire nello stesso modo in cui è entrato. L'API payout di ItisPay invia un payout fiat su un conto bancario o un payout in cripto-attività su un wallet dal tuo saldo disponibile, per rimborsi, pagamenti ai fornitori e pagamenti B2B in stablecoin.
Sotto c'è una regola di fondo. Il regolamento (UE) 2023/1113 sui trasferimenti di fondi, applicato dal 30 dicembre 2024, impone ai CASP di trasmettere e verificare le informazioni sul mittente e sul destinatario con ogni trasferimento di cripto-attività (artt. 14 e 16). Aggiunge controlli per i trasferimenti superiori a 1.000 € che coinvolgono un wallet self-hosted. Questi controlli spettano al partner autorizzato, non al tuo checkout, ma chiedi al partner come incidono sui pagamenti più grandi.
Come si collegano i pagamenti in stablecoin via API?#
Una richiesta autenticata crea una fattura, e un unico endpoint webhook riceve ogni cambio di stato. La maggior parte delle integrazioni non richiede molto più di questo. Le richieste trasportano la tua chiave nell'header `Api-key`; conservala sul tuo server, mai nel codice del browser o in un repository pubblico.
| Campo | Obbligatorio | Funzione |
|---|---|---|
| order_id | Sì | Il riferimento dell'ordine, univoco per ogni ordine |
| currency | Sì | La criptovaluta da ricevere, ad esempio USDC |
| fiat_amount e fiat_currency | Uno dei due | Prezzo in EUR; l'importo in criptovaluta viene calcolato |
| crypto_amount | Uno dei due | Un importo fisso nella criptovaluta |
| expire_min | No | Minuti prima della scadenza della fattura |
| allowed_error_percent | No | Errore di pagamento ammesso in percentuale, da 0 a 100 |
| callback_url | No | Indirizzo a cui vengono inviati i webhook di cambio di stato |
Eseguire test prima dell'avvio in produzione. Un endpoint di simulazione invia un webhook di cambio di stato per una fattura esistente, in modo da verificare che il server gestisca correttamente i casi completed, expired e paid_partial. Se il server era fuori servizio quando è arrivato un webhook, un endpoint di reinvio ripete l'ultimo callback in base all'ID fattura o all'ID ordine.
Per il team finanza, l'elenco delle fatture è la vista di riconciliazione. L'API filtra le fatture per stato, valuta e data di creazione, fino a 100 per pagina. La dashboard mostra gli stessi dati: importo in USDC ed EUR, quota dell'importo ricevuto, rete, indirizzo e orario di creazione, con ricerca per ID fattura, ID ordine o nome dell'ordine.

Per una panoramica più ampia sull'automazione dei pagamenti in criptovalute oltre alle fatture, vedere la nostra guida su accettare pagamenti in criptovalute in modo automatico.
Dove le fatture in stablecoin non bastano?#
Le fatture in stablecoin sono adatte a chi paga e possiede già USDC: aziende del settore crypto, clienti B2B transfrontalieri e clienti che gli acquirer di carte rifiutano. Sostituiscono il checkout con carta solo in parte, e alcuni limiti dovrebbero incidere sulle condizioni commerciali.
Quando non è utile
- I rimborsi sono nuovi trasferimenti. Non esiste uno storno tipo carta; il denaro viene rispedito dall'esercente stesso, verso un indirizzo confermato dal pagatore.
- Un pagamento inviato sulla rete sbagliata non viene accreditato sulla fattura e potrebbe andare perso. Indicare la rete in modo chiaro.
- I clienti senza un wallet o un account presso un exchange non possono pagare in questo modo. Mantenere un secondo metodo di pagamento.
- USDT non compare nel registro ESMA degli emittenti autorizzati di token di moneta elettronica. Nel gennaio 2025 l'ESMA ha comunicato ai prestatori di servizi per le cripto-attività (CASP) di smettere di convertire stablecoin non conformi in fondi, quindi prevedere l'uso di USDC.
La domanda è reale ma concentrata. La presidente della BCE Christine Lagarde ha dichiarato in un discorso al Banco de España LatAm Economic Forum l'8 maggio 2026 che i pagamenti transfrontalieri business-to-business «rappresentano già circa il 60% del volume dei pagamenti in stablecoin», aggiungendo che si tratta di «appena lo 0,01% dei flussi business-to-business globali». Se i pagatori rientrano in quel gruppo, vale la pena introdurre un flusso di fatture.
Come accettare pagamenti in stablecoin: configurazione prima della prima fattura#
Per accettare pagamenti in stablecoin senza sorprese, prima di scrivere il codice occorre decidere quattro aspetti: la finestra di scadenza per ciascun canale di vendita, la tolleranza di errore sul pagamento, la politica per paid_partial e per i pagamenti nella moneta sbagliata, e chi nel team finanza gestisce la riconciliazione. Quindi realizzare il gestore dei webhook, testarlo con stati simulati ed eseguire un piccolo pagamento reale end-to-end.
Per accettare stablecoin e ricevere euro senza costruire da zero l'infrastruttura, ItisPay fornisce API, fatturazione e riconciliazione. Licenze, KYC e regolamento sul proprio IBAN sono gestiti dal nostro partner con licenza UE come prestatore di servizi per le cripto-attività (CASP) e istituto di pagamento, e la maggior parte dei team passa da KYB alla prima transazione in meno di una settimana.
Questo articolo ha scopo meramente informativo e non costituisce consulenza legale o normativa.


