Developer 7 min di lettura

Webhook e risultati asincroni nella Verification of Payee

Un'integrazione Verification of Payee robusta prevede anche la richiesta che non torna in 300 millisecondi. Ecco come usare webhook e callback per gestire gli esiti asincroni senza congelare il checkout.

A cura di Verification of Payee EU · powered by RoxPay

In breve

  • Tratta la VoP come solitamente sincrona ma occasionalmente asincrona: progetta uno stato «in sospeso» fin dall'inizio.
  • Usa un webhook per ricevere l'esito finale quando un PSP rispondente risponde in ritardo.
  • Verifica sempre la firma dei webhook e rendi i gestori idempotenti per resistere ai reinvii.

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. 1 Invia la verifica e memorizza il suo request ID associandolo al pagamento che stai per disporre.
  2. 2 Se non arriva risposta entro il tuo budget sincrono, mostra a chi paga uno stato «in sospeso» invece di un errore.
  3. 3 Ricevi l'esito finale (corrispondenza, parziale, nessuna o non disponibile) sull'endpoint del tuo webhook.
  4. 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.

FAQ

Domande frequenti

Non è obbligatorio, ma è fortemente consigliato. Senza un percorso asincrono, un PSP rispondente lento ti costringe a bloccare chi paga o a scartare un esito valido. Un webhook permette di catturare con pulizia le risposte tardive.

Rendi idempotente il gestore del webhook. Indicizza l'elaborazione sul request ID della verifica e ignora un payload già applicato, poiché lo stesso esito può essere consegnato più volte.

Uno stato neutro «in sospeso» piuttosto che un fallimento, evitando di auto-confermare un bonifico ad alto rischio finché l'esito non arriva o non scatta il timeout previsto dalla policy.

Costruisci un'integrazione VoP resiliente

Parla con RoxPay di esiti sincroni con fallback a webhook per i PSP rispondenti lenti.