Una richiesta di Verification of Payee di solito restituisce un esito in tempo reale, abbastanza in fretta da mostrarlo prima che chi paga autorizzi il bonifico. Ma la VoP è una chiamata di rete verso un'altra banca, e le reti non sono perfettamente affidabili. Un PSP rispondente può essere lento, una connessione può cadere o una richiesta può finire in coda. Un'integrazione di livello produttivo ha bisogno di un piano per la risposta che arriva qualche secondo — o qualche minuto — in ritardo.
Perché una chiamata VoP può diventare asincrona
Lo schema definisce una finestra di risposta stretta, ma il traffico reale produce comunque casi limite da gestire con eleganza invece di trattarli come errori gravi:
- Il PSP rispondente è temporaneamente sovraccarico e risponde appena oltre il tuo timeout sincrono.
- Un guasto di rete transitorio innesca un retry che si completa dopo che la richiesta iniziale è già tornata.
- Invii molte verifiche in blocco (ad esempio una distinta) e raccogli gli esiti man mano che arrivano.
Progettare il flusso a webhook
Il pattern più pulito è assegnare a ogni verifica un identificativo stabile, restituire uno stato «in sospeso» quando scade la finestra sincrona e lasciare che un webhook consegni l'esito finale.
- 1 Invia la verifica e memorizza il suo request ID associandolo al pagamento che stai per disporre.
- 2 Se non arriva risposta entro il tuo budget sincrono, mostra a chi paga uno stato «in sospeso» invece di un errore.
- 3 Ricevi l'esito finale (corrispondenza, parziale, nessuna o non disponibile) sull'endpoint del tuo webhook.
- 4 Riconcilia il payload del webhook con il request ID memorizzato e aggiorna la decisione di pagamento.
Sicuro e idempotente per impostazione
Verifica la firma di ogni webhook prima di fidartene e rendi il gestore idempotente: lo stesso esito può essere consegnato più di una volta. Indicizza l'elaborazione sul request ID, così una consegna duplicata non agisce due volte su un pagamento.
RoxPay restituisce un esito sincrono ogni volta che può e ripiega su un webhook firmato quando un PSP rispondente è lento, così il checkout resta reattivo e i tuoi registri restano completi.