Developer 7 min di lettura

Gestire timeout e tentativi nella Verification of Payee

Ogni integrazione di Verification of Payee prima o poi incontra una banca rispondente lenta o irraggiungibile. La differenza tra un'integrazione robusta e una fragile è come gestisce il timeout.

A cura di Verification of Payee EU · powered by RoxPay

In breve

  • Imposta un timeout sincrono ragionevole e tratta lo sforamento come «non disponibile», non come errore grave.
  • Riprova con backoff, ma solo con richieste idempotenti indicizzate da un identificativo stabile.
  • Definisci una policy di fallback chiara per chi paga quando non si ottiene un esito in tempo.

La Verification of Payee dipende da una risposta remota della banca del beneficiario. Quando quella banca è lenta, sovraccarica o temporaneamente irraggiungibile, la tua integrazione deve decidere cosa fare — e quella decisione incide sia sull'esperienza di chi paga sia sulla tua posizione di conformità. Gli esiti peggiori sono un checkout congelato o una verifica conteggiata o addebitata due volte in silenzio.

L'esito «non disponibile» è una funzionalità

Lo schema definisce un esito «non disponibile» proprio perché tu non debba inventare la semantica degli errori. Quando il lato rispondente non riesce a rispondere in tempo, trattalo come un esito di prima classe e non come un'eccezione.

  • Imposta un timeout sincrono allineato al budget del checkout (spesso un paio di secondi).
  • In caso di sforamento, mostra a chi paga uno stato neutro «non disponibile» invece di un errore allarmante.
  • Decidi, per policy, se chi paga può proseguire, deve attendere o va instradato in revisione.

Riprovare in sicurezza

I retry aiutano con i guasti transitori ma causano danni se non sono idempotenti. Un retry non deve mai creare una seconda verifica logica o un secondo addebito.

  1. 1 Associa un identificativo di richiesta stabile a ogni tentativo di verifica.
  2. 2 Riprova gli errori di rete transitori con backoff esponenziale e un tetto contenuto.
  3. 3 Non riprovare mai un esito definitivo (corrispondenza, parziale, nessuna): riprova solo i veri guasti di trasporto.
  4. 4 Riconcilia un'eventuale risposta tardiva con l'identificativo di richiesta, così viene registrata una sola volta.

Stabilisci il tempo d'attesa, poi decidi

Scegli un budget sincrono difendibile davanti ai team UX e compliance. Oltre quel budget, ripiega deliberatamente — mostra «in sospeso» o «non disponibile» — invece di lasciare la richiesta appesa e far abbandonare chi paga.

RoxPay restituisce gli esiti standardizzati incluso «non disponibile», supporta retry idempotenti per request ID e ripiega su un webhook per le risposte tardive — così la tua policy di timeout resta semplice.

FAQ

Domande frequenti

Allinealo all'esperienza di checkout — spesso un paio di secondi per l'uso sincrono. Oltre, ripiega su uno stato «in sospeso» o «non disponibile» invece di bloccare chi paga a tempo indeterminato.

Solo per i guasti di trasporto e solo con richieste idempotenti indicizzate da un identificativo stabile. Non riprovare mai un esito di corrispondenza definitivo: è un risultato, non un errore.

Trattalo come un esito definito e applica la tua policy: consentire a chi paga di proseguire con cautela, attendere una risposta asincrona o instradare il pagamento in revisione manuale a seconda del rischio.

Rendi la VoP affidabile in produzione

Parla con RoxPay di timeout, retry idempotenti e fallback a webhook sullo schema SEPA VoP.