Pagamenti
Come i pagamenti fluiscono attraverso Fooodo — metodi e valute supportati, Mollie sotto il cofano, instradamento di mance e donazioni, la macchina a stati dei pagamenti e la riconciliazione dei webhook.
Fooodo suddivide la gestione dei pagamenti in un servizio dedicato. L'app menu rivolta al cliente vi fa da proxy; il servizio di pagamento è responsabile dell'integrazione con Mollie, del perimetro PCI e della riconciliazione dei webhook.
Metodi supportati
Attualmente in produzione:
- Carta (Visa, Mastercard) e addebito diretto bancario UE
- Apple Pay
- Google Pay
- Trustly — pagamento diretto tramite home banking, principalmente per i mercati nordici e baltici dove l'autenticazione tramite app bancaria è il flusso predefinito per i consumatori
Il catalogo completo dei metodi di Mollie è tecnicamente disponibile attraverso la stessa integrazione; solo i metodi sopra indicati sono collegati al percorso di checkout in produzione. Metodi aggiuntivi (ad es. iDEAL, Bancontact) possono essere abilitati per singola distribuzione.
Il contante è supportato come flusso separato: un cameriere riscuote il contante al tavolo e contrassegna l'ordine come pagato direttamente nell'admin di Fooodo. L'ordine stesso scorre attraverso la stessa macchina a stati; viene bypassato solo il passaggio di creazione del pagamento su Mollie.
Valute supportate
Fooodo regola ogni ordine nella valuta configurata sul ristorante. Mollie supporta più di 30 valute; l'elenco pratico per i mercati che Fooodo serve oggi:
| Regione | Valute |
|---|---|
| Eurozona | EUR |
| Regno Unito | GBP |
| Europa orientale (non Euro) | PLN (Polonia), CZK (Repubblica Ceca), HUF (Ungheria), RON (Romania), BGN (Bulgaria) |
| Paesi nordici | DKK, NOK, SEK |
| Altro | CHF, USD |
Il catalogo completo di Mollie (31 valute, tra cui AUD, CAD, JPY, ZAR) è tecnicamente disponibile; non tutti i metodi di pagamento coprono tutte le valute. EUR e i principali circuiti di carte (Visa, Mastercard) funzionano ovunque; il supporto metodo-per-valuta viene definito durante l'onboarding per le distribuzioni al di fuori dell'Eurozona.
Per le distribuzioni in Romania in particolare, RON è supportato tramite pagamenti con carta end-to-end; anche Apple Pay e Google Pay accettano carte RON.
Il ciclo di vita del pagamento
| Menu app | Payment service | Mollie | Guest |
|---|---|---|---|
01Create payment for order | |||
02Build payload (tips · donations) and create payment | |||
03Return checkout URL | |||
04Pass checkout URL through | |||
05Redirect guest to Mollie checkout | |||
06Complete payment | |||
07Webhook callback (payment ID only) | |||
08Fetch authoritative status | |||
09Notify status (queued, signed) | |||
10Show success / cancel page | |||
La pipeline è guidata dai webhook ed è idempotente. Mollie può ritentare i webhook in caso di errori transitori; i replay sono sicuri — il servizio si interrompe anticipatamente se lo stato del pagamento non è cambiato dall'ultima esecuzione.
Stati del pagamento
Il servizio di pagamento tiene traccia della propria macchina a stati, parallela alla macchina a stati degli ordini nell'app menu:
| Stato | Significato |
|---|---|
Open | Creato, in attesa di risposta da Mollie |
Pending | Mollie ha accettato, in attesa dell'ospite |
Authorized | Autorizzato ma non ancora acquisito |
Paid | Acquisito e definitivo |
Failed | Errore terminale |
Cancelled | Ospite ha annullato |
Expired | Pagamento Mollie scaduto |
Cancelled ed Expired sono recuperabili — un ospite può riprovare sullo stesso ordine, il che crea un nuovo tentativo di pagamento a fronte dello stesso ordine.
Mance
Le mance vengono raggruppate in un unico addebito Mollie insieme all'ordine — gli ospiti non vedono mai un secondo checkout per la mancia. Dopo che il pagamento si è concluso, la mancia appare nel POS come riga mancia separata sull'ordine, in modo che i flussi di rendicontazione e distribuzione delle mance funzionino come sempre. Il codice ricavo POS utilizzato per rappresentare il reddito da mance è impostato per ristorante nell'admin (R-Keeper è il connettore di riferimento attivo per questo; gli altri connettori POS espongono la stessa impostazione attraverso il contratto del connettore).
Donazioni
Le donazioni funzionano allo stesso modo: un unico addebito Mollie all'ospite, ma la quota della donazione viene instradata verso un account organizzazione separato all'interno di Mollie (la Croce Rossa è l'esempio di riferimento attivo). Dal punto di vista dell'ospite si tratta di un'unica transazione; dal punto di vista dell'operatore la donazione non compare nei ricavi del ristorante né nei report di vendita del POS — confluisce in modo netto nei libri contabili dell'organizzazione partner.
Webhook
Sono coinvolti due webhook:
- Mollie → servizio di pagamento. Endpoint pubblico che riceve solo un ID pagamento Mollie. Il servizio chiama quindi l'API di Mollie per recuperare lo stato autorevole — in modo che una callback contraffatta non possa spostare denaro né modificare lo stato dell'ordine. (Questo è il pattern di integrazione standard di Mollie; i loro callback sono intenzionalmente minimali.)
- Servizio di pagamento → app menu. Autenticato tramite Bearer token, segreto per distribuzione. Questo è il canale che effettivamente cambia lo stato dell'ordine sul lato dell'app menu.
Se si gestisce una distribuzione Fooodo, il segreto dell'app menu viene fornito durante l'onboarding. Se si integra con Fooodo come partner, normalmente non si vedrà nessuno dei due.
Cosa vedono i partner
I partner integratori non si integrano direttamente con il servizio di pagamento. Il contratto è:
- Si chiama l'API di creazione ordini dell'app menu.
- Si riceve un ordine e (quando è richiesto il pagamento) un URL di checkout.
- Non si gestiscono dati di carta, non si chiama Mollie, non è necessario il perimetro PCI.
Questa è una delle ragioni portanti per cui il servizio di pagamento esiste come confine separato.
Rimborsi e storni
I rimborsi sono un'azione dell'operatore — gli ospiti non possono richiederli dall'app. A seconda della distribuzione, i rimborsi vengono emessi dal dashboard Mollie o dal pannello di amministrazione del servizio di pagamento. Al momento non esiste un flusso di rimborso rivolto al cliente.
Connettore R-Keeper
L'implementazione di riferimento live del contratto di connettore POS di Fooodo — quali dati attraversano il confine, le cadenze di sincronizzazione, i prezzi fedeltà e come i fallimenti vengono ritentati in produzione.
Sconti, coupon e fidelizzazione
Il manuale operativo per aumentare il traffico e alzare lo scontrino medio con Fooodo — sconti a finestra temporale, codici coupon, fidelizzazione tramite POS, cross-sell al checkout, mance e donazioni.