Accettare un pagamento singolo (one-time)
July 30, 2026
Accetta pagamenti one-time con FlowAlp Pay: crei un Gateway, reindirizzi il cliente al checkout hosted, confermi via webhook ed evadi l'ordine.
Il pagamento one-time è il tipo di pagamento predefinito su FlowAlp Pay: il cliente paga una sola volta e l'importo viene addebitato subito. Il modo più flessibile per accettarlo è il Gateway della Merchant API: il tuo backend crea una sessione di pagamento, FlowAlp Pay ospita il checkout e un webhook avvisa il tuo sistema quando l'incasso è avvenuto. Questa guida copre l'intero flusso, dalla creazione del Gateway all'evasione dell'ordine.

Prerequisiti
- Un account merchant: registrati su signup.pay.flowalp.com e accedi da login.pay.flowalp.com
- Almeno un metodo di pagamento attivo — vedi Attivare i metodi di pagamento
- Il tuo instance name e le credenziali API
- Facoltativo: lo SDK PHP se il tuo backend è in PHP
Come funziona il flusso
- Il tuo backend crea un Gateway con importo, valuta, URL di redirect e il riferimento del tuo ordine.
- Reindirizzi il cliente al
linkrestituito nella risposta: il checkout hosted sulla tua pagina di pagamentotenantname.pay.flowalp.com. - Il cliente sceglie un metodo di pagamento (TWINT, carta, wallet, …) e paga.
- FlowAlp Pay invia un webhook al tuo server non appena lo stato della transazione cambia.
- Verifichi la notifica e poi evadi l'ordine.
One-time è il tipo di pagamento predefinito: non serve alcun parametro aggiuntivo. Per pre-authorization, tokenization o abbonamenti si aggiungono parametri dedicati: consulta le rispettive guide.
Crea il Gateway
Invia una richiesta POST all'endpoint Gateway. Gli importi sono sempre espressi nell'unità minima della valuta (CHF 89.25 → 8925) e referenceId deve contenere l'ID interno del tuo ordine, così puoi riconciliare il pagamento in seguito. Usa la versione API v1.16.
curl -X POST "https://api.pay.flowalp.com/v1.16/Gateway/?instance=demo-shop" \
-H "x-api-key: $FLOWALP_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"amount": 8925,
"currency": "CHF",
"purpose": "Order ORDER-2026-1042",
"referenceId": "ORDER-2026-1042",
"successRedirectUrl": "https://shop.example.com/payment/success",
"failedRedirectUrl": "https://shop.example.com/payment/failed",
"cancelRedirectUrl": "https://shop.example.com/payment/cancel"
}'<?php
use FlowAlpPay\FlowAlpPay;
use FlowAlpPay\Models\Request\Gateway;
$client = new FlowAlpPay(
getenv('FLOWALP_TENANT'),
getenv('FLOWALP_API_SECRET'),
FlowAlpPay::DEFAULT_COMMUNICATION_HANDLER,
'pay.flowalp.com',
'1.16'
);
$gateway = new Gateway();
$gateway->setAmount(8925); // CHF 89.25 in minor units
$gateway->setCurrency('CHF');
$gateway->setPurpose('Order ORDER-2026-1042');
$gateway->setReferenceId('ORDER-2026-1042');
$gateway->setSuccessRedirectUrl('https://shop.example.com/payment/success');
$gateway->setFailedRedirectUrl('https://shop.example.com/payment/failed');
$gateway->setCancelRedirectUrl('https://shop.example.com/payment/cancel');
$response = $client->create($gateway);
$link = $response->getLink(); // send the customer hereLa risposta contiene l'id del Gateway e un link. Salva l'ID insieme all'ordine — ti servirà per recuperare il Gateway — e reindirizza il cliente al link. Tutti i parametri (IVA, basket, campi di contatto, validity, profilo grafico, …) sono documentati in Creare un Gateway.
Il cliente paga sul checkout hosted
Sulla pagina di pagamento hosted il cliente sceglie uno dei metodi di pagamento attivi sul tuo account e completa il pagamento. Puoi limitare la scelta per un singolo pagamento con i parametri psp e pm: vedi Metodi di pagamento. Al termine il browser viene reindirizzato al tuo URL di successo, fallimento o annullamento. Preferisci l'embedding? Il checkout funziona anche in iFrame o modal window.
Il redirect da solo non dimostra mai un pagamento. Il cliente può chiudere il browser prima del redirect o aprire manualmente la success URL. Considera l'ordine pagato solo dopo la conferma server-side.
Conferma il pagamento server-side
FlowAlp Pay chiama il tuo endpoint webhook a ogni cambio di stato della transazione. Un pagamento one-time è riuscito quando la transazione raggiunge lo stato confirmed. Verifica la firma del webhook prima di fidarti del payload, oppure conferma lo stato in modo indipendente recuperando il Gateway o la transazione via API.
| Stato | Significato |
|---|---|
waiting | Checkout aperto, pagamento non ancora completato |
confirmed | Pagamento riuscito: puoi evadere l'ordine |
cancelled | Pagamento annullato dal cliente |
declined | Pagamento rifiutato (ad esempio 3-D Secure non superato) |
expired | Pagamento interrotto per inattività |
Evadi l'ordine
- Associa la notifica al tuo ordine tramite
referenceId(o l'ID del Gateway salvato). - Elabora ogni transazione una sola volta: i webhook possono essere reinviati, quindi rendi idempotente il tuo handler.
- Solo a quel punto spedisci la merce, attivi l'accesso o segni la fattura come pagata.
Pronto a partire? Segui la reference Creare un Gateway per tutti i parametri, esegui un pagamento di prova con le carte di test e completa la checklist di go-live prima di passare in produzione.