API di pagamento per i viaggi
API gateway di pagamento per prenotazioni di viaggio: dal checkout al rimborso
Un'API gateway di pagamento permette al vostro sito di prenotazione di incassare dal viaggiatore senza mai toccare la carta. Questa pagina illustra le chiamate di un pagamento con carta, gli stati che attraversa, cosa rende i pagamenti nei viaggi più complessi di quelli del retail e come PHPTRAVELS collega il vostro flusso di prenotazione al gateway che scegliete.
- Sessione, 3-D Secure, cattura
- Tutti gli stati del pagamento
- Carte, wallet, bonifico, credito
- Nessun dato di carta sul vostro server
Come funzionano le chiamate
Un pagamento con carta, chiamata dopo chiamata
Un'API gateway di pagamento è un insieme di servizi web che una società di pagamenti mette a disposizione degli esercenti. Il vostro server chiede di creare un pagamento per un importo e una valuta, il viaggiatore inserisce la carta nel modulo del gateway e il gateway dialoga con il circuito e con la banca emittente. Il vostro server non vede mai il numero della carta: riceve un ID del pagamento e uno stato.
Partecipano quattro soggetti. Il diagramma li mostra come colonne e ogni messaggio come una freccia numerata. I nomi cambiano da un gateway all'altro (payment intent, sessione, ordine, addebito), ma la sequenza è la stessa.

La freccia tratteggiata è un webhook: il gateway chiama il vostro server di sua iniziativa, così il pagamento aggiorna la prenotazione anche se il viaggiatore chiude il browser. La pagina Integrazione gateway di pagamento spiega come ogni passaggio è collegato a una prenotazione in PHPTRAVELS.
- Viaggiatore
- Il vostro sito
- Gateway
- Circuito / banca
01CheckoutViaggiatore Il vostro sito
Il viaggiatore controlla il viaggio e preme Paga. La prenotazione è bloccata presso il fornitore, non ancora confermata.
02Creare payment intent o sessioneIl vostro sito Gateway
Il vostro server invia importo, valuta, riferimento della prenotazione e una chiave di idempotenza con la chiave API segreta. Il gateway restituisce un ID del pagamento.
03Campi ospitati o reindirizzamentoGateway Viaggiatore
Il modulo della carta è servito dal gateway, nella vostra pagina o in una pagina propria, così i dati della carta arrivano direttamente a lui.
043-D SecureCircuito / banca Viaggiatore
Se la banca emittente lo richiede, il viaggiatore conferma il pagamento nell'app della banca o con un codice monouso.
05AutorizzazioneGateway Circuito / banca
Il gateway chiede all'emittente, tramite il circuito, di approvare l'importo.
06Approvato, fondi bloccatiCircuito / banca Gateway
L'emittente riserva il denaro sulla carta. Non si è ancora mosso nulla.
07Esito al vostro sitoGateway Il vostro sito
Il viaggiatore torna sul vostro sito con l'ID del pagamento. Il vostro server legge lo stato dall'API e conferma la prenotazione con il fornitore.
08CatturaIl vostro sito Gateway
Quando il fornitore conferma, il vostro server cattura l'importo intero o uno inferiore. Molti gateway possono anche catturare subito.
09WebhookGateway Il vostro sitoInviato dal gateway di propria iniziativa
Il gateway invia al vostro endpoint un evento firmato (pagamento catturato, rimborsato, contestato). Il vostro server verifica la firma e aggiorna la prenotazione.
Stati del pagamento
La vita di un pagamento come macchina a stati
Ogni API di gateway riporta uno stato per ciascun pagamento. Le parole cambiano, ma corrispondono agli stessi pochi stati, e la logica della vostra prenotazione deve reagire a ognuno.
created
Creato
Il pagamento esiste con importo e valuta, in attesa del viaggiatore.
failedFinale
Fallito
Rifiutato, 3-D Secure non completato o abbandonato. Non viene addebitato nulla.
authorized
Autorizzato
L'emittente ha approvato l'importo e lo tiene bloccato sulla carta.
voidedFinale
Annullato
Il blocco viene cancellato prima della cattura, quindi il viaggiatore non viene mai addebitato.
captured
Catturato
Il denaro è stato incassato e verrà accreditato sul vostro conto esercente.
partially_refundedFinale
Rimborsato in parte
Una parte dell'importo catturato viene restituita, ad esempio dopo una penale di cancellazione.
refundedFinale
Rimborsato
L'intero importo catturato viene restituito alla carta.
Un'autorizzazione non dura per sempre: se non viene catturata in tempo, il blocco scade e la banca libera il denaro. Un pagamento rimborsato in parte può essere rimborsato ancora, fino all'importo catturato.
Perché i viaggi sono più difficili
Perché i pagamenti nei viaggi sono diversi
Un negozio vende ciò che ha in magazzino. Chi vende viaggi incassa per una prenotazione che il fornitore deve ancora confermare, spesso mesi prima della partenza. L'API di pagamento deve adattarsi a questo.
01
Autorizzare ora, catturare dopo
Hotel su richiesta, tariffe gruppi e tour vengono confermati ore o giorni dopo l'ordine. Autorizzare prima e catturare alla conferma evita di addebitare una prenotazione che non va a buon fine.
02
Il fornitore può ancora rifiutare
Una tariffa può esaurirsi tra il pagamento e l'emissione. Con un'autorizzazione il denaro viene liberato con un annullamento; dopo la cattura diventa un rimborso.
03
Rimborsi parziali dopo le penali di cancellazione
Cancellare un soggiorno o un biglietto in genere comporta una penale. La chiamata di rimborso invia un importo inferiore sul pagamento originale, tante volte quante richiedono le regole.
04
Multivaluta
I viaggiatori pagano nella propria valuta mentre i fornitori fatturano nella loro. Il gateway deve supportare la valuta di presentazione e i vostri registri devono conservare entrambi gli importi.
05
Controlli antifrode sugli importi elevati
Biglietti per domani, per un'altra persona, pagati con una carta nuova sono uno schema di frode classico. 3-D Secure, il punteggio di rischio del gateway e una coda di revisione manuale proteggono gli ordini di valore elevato.
06
Chargeback dopo mesi
Le contestazioni spesso arrivano dopo il viaggio. Conservate insieme l'esito dell'autenticazione, i documenti della prenotazione e gli eventi del gateway, per rispondere a ciascuna con prove.
Metodi di pagamento
Quali modi di pagamento copre un'API gateway di pagamento
Le carte sono solo un'opzione. Viaggiatori e agenti pagano in modi diversi e ognuno viene rimborsato in modo diverso.
| Metodo | Che cos'è | Quando arriva il denaro | Rimborsi |
|---|---|---|---|
| Carte | Carte di debito e di credito tramite il gateway, con 3-D Secure quando l'emittente lo richiede. | Autorizzato al checkout; catturato subito o quando il fornitore conferma. | Rimborso totale o parziale sulla stessa carta tramite API. |
| Wallet digitali | Account wallet supportati dal gateway, come PayPal o un wallet sul telefono con carta tokenizzata. | Al checkout, dopo l'approvazione del viaggiatore nel wallet. | Di nuovo sul wallet o sulla carta collegata, tramite il gateway. |
| Bonifico bancario | Il viaggiatore o l'agente invia il denaro al vostro conto bancario e il pagamento viene registrato sulla prenotazione. | Dopo alcuni giorni; la prenotazione attende finché il vostro team conferma l'accredito. | Restituito con bonifico, fuori dal gateway. |
| Paga dopo | La prenotazione si fa ora e si paga più tardi; il vostro team registra il pagamento quando arriva. | Dopo la prenotazione, quando il viaggiatore paga. | Viene restituito solo ciò che è stato effettivamente pagato. |
| Wallet o credito per agenti B2B | I sub-agenti pagano con un saldo che ricaricano in anticipo o con un fido che voi concedete. | Scalato alla prenotazione; depositi e credito regolati secondo le vostre condizioni. | Riaccreditato sul saldo dell'agente. |
Bonifico, paga dopo e saldo wallet sono modalità di regolamento della piattaforma stessa, non gateway. Saldi e fidi degli agenti sono spiegati nella pagina Wallet B2B per agenti; i pagamenti bancari nella pagina Pagamenti con bonifico.
Pronti in PHPTRAVELS
API gateway di pagamento già collegate
Questi gateway sono già collegati a PHPTRAVELS. Aprite un conto esercente presso il provider, inserite le chiavi API nell'admin, provate nella sandbox e andate online. L'elenco è quello aggiornato della nostra directory delle integrazioni.
StripeGuida all'integrazionePayPalGuida all'integrazione
xMoney
Fawaterk
Cashfree
Paystack
Flutterwave
Adyen
MyFatoorah
SSLcommerz
Razorpay- Tutte le integrazioni di pagamento
Commissioni e approvazione dell'esercente si concordano con la società di pagamenti, non con PHPTRAVELS. Un gateway non presente può essere aggiunto come Integrazione API personalizzata, e la pagina Integrazione gateway di pagamento spiega come si configura ciascuno.
Sicurezza
Tenere i dati della carta fuori dal vostro sistema
Il numero di carta più sicuro è quello che il vostro server non riceve mai. Un'API gateway di pagamento è progettata proprio perché non serva.
Mai salvare i numeri di carta
I dati della carta vanno al gateway, che restituisce un token o un ID del pagamento. Il vostro database conserva quel riferimento, mai il numero di carta né il codice di sicurezza.
Campi ospitati e reindirizzamenti riducono l'ambito PCI DSS
Il PCI DSS riguarda chiunque tratti dati di carta. Quando il modulo della carta è la pagina del gateway o un campo incorporato, una parte molto minore del vostro sistema rientra nell'ambito. Il vostro acquirer conferma quale autovalutazione vi riguarda.
Webhook verificati tramite firma
Ogni webhook porta una firma creata con un segreto condiviso. Il vostro server la ricalcola e scarta ogni evento che non corrisponde, così nessuno può simulare una prenotazione pagata.
Le chiavi segrete restano sul server
Il browser riceve solo una chiave pubblicabile. La chiave segreta che crea pagamenti e rimborsi sta nella configurazione del vostro server, e ogni richiesta porta una chiave di idempotenza così un nuovo tentativo non addebita mai due volte.
1$payload = file_get_contents("php://input"); 2$signature = $_SERVER["HTTP_X_SIGNATURE"] ?? ""; 3$expected = hash_hmac("sha256", $payload, $webhookSecret); 4 5if (!hash_equals($expected, $signature)) { 6 http_response_code(400); exit; // reject 7} 8$event = json_decode($payload, true); 9if (alreadyHandled($event["id"])) exit; // repeat delivery10updateBooking($event["data"]["metadata"]["booking_ref"], $event["type"]);
Esempio generico. I nomi degli header e il metodo di firma dipendono dal gateway scelto.
PHPTRAVELS è un software self-hosted, quindi la conformità PCI DSS viene valutata per la vostra attività e il vostro server, non per il solo software.
Vedete una prenotazione pagata, catturata e rimborsata
Prenotate un viaggio nella demo live e seguite il pagamento nell'admin. Con il piano Enterprise, PHPTRAVELS offre anche una propria REST API e webhook per le vostre app e i partner.
Vendete anche voli? La pagina API voli spiega il lato fornitore, e API di viaggio elenca tutte le API che PHPTRAVELS collega.
È un insieme di servizi web che una società di pagamenti mette a disposizione perché un sito possa creare pagamenti, inviare la carta alla banca per l'approvazione, catturare il denaro, emettere rimborsi e ricevere aggiornamenti di stato via webhook, senza salvare dati di carta.
Il gateway è la parte con cui dialoga il vostro sito: raccoglie la carta in sicurezza e inoltra la richiesta. Il processore porta la transazione attraverso i circuiti fino alla banca emittente. Molti provider offrono entrambi in un unico servizio.
Quella che approva la vostra attività, supporta i paesi, le valute e i metodi di pagamento dei vostri clienti e offre autorizzazione e cattura separate e rimborsi parziali. Molte agenzie combinano un gateway globale per le carte con uno regionale.
Autorizzare riserva l'importo sulla carta del viaggiatore; catturare lo incassa. Separare le due fasi consente di addebitare solo quando il fornitore conferma la prenotazione e di annullare il blocco se non conferma.
In molte regioni, compresi lo Spazio economico europeo e il Regno Unito, l'autenticazione forte del cliente è richiesta per la maggior parte dei pagamenti online con carta, e il 3-D Secure è il modo in cui le carte la rispettano. L'API del gateway gestisce la verifica; il vostro flusso di prenotazione attende l'esito.
Non da sola. Usare i campi ospitati o la pagina di pagamento del gateway tiene i dati di carta fuori dal vostro server e riduce l'ambito PCI DSS, ma dovete comunque completare la valutazione richiesta dal vostro acquirer.
Sì, se il gateway supporta i rimborsi parziali, come fa la maggior parte dei gateway per carte. Inviate un rimborso di importo inferiore sul pagamento originale, ad esempio il prezzo meno una penale di cancellazione.
No. Aprite un conto esercente presso il gateway che scegliete e concordate con lui le commissioni. PHPTRAVELS collega la vostra piattaforma di prenotazione a quel conto con le chiavi API che inserite nell'admin.
Sì. Qualsiasi gateway con un'API documentata può essere aggiunto come integrazione personalizzata e, poiché il codice sorgente è incluso, i vostri sviluppatori possono anche estendere il flusso di pagamento.
Continua a esplorare
Altro sulla piattaforma
- Integrazione gateway di pagamentoCheckout, 3D Secure, rimborsi e webhook
- Pagamenti StripePagamento con carta e wallet, rimborsi e accrediti
- Pagamenti PayPalPagamento PayPal per voli, hotel e tour
- Wallet B2B per agentiDepositi, fidi e un registro contabile per ogni agente
- API di viaggioAPI GDS, hotel, tour, auto e pagamenti
- API voliAPI voli GDS, NDC e dei consolidatori su un'unica piattaforma
