Fooodo / Documentazione

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.

Auto-translated · pending native review. The English version is canonical.

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:

RegioneValute
EurozonaEUR
Regno UnitoGBP
Europa orientale (non Euro)PLN (Polonia), CZK (Repubblica Ceca), HUF (Ungheria), RON (Romania), BGN (Bulgaria)
Paesi nordiciDKK, NOK, SEK
AltroCHF, 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 appPayment serviceMollieGuest
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
Payment lifecycle · sequence

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:

StatoSignificato
OpenCreato, in attesa di risposta da Mollie
PendingMollie ha accettato, in attesa dell'ospite
AuthorizedAutorizzato ma non ancora acquisito
PaidAcquisito e definitivo
FailedErrore terminale
CancelledOspite ha annullato
ExpiredPagamento 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.

In questa pagina