Abbonamenti e pagamenti ricorrenti
July 30, 2026
Fatturazione ricorrente con gli abbonamenti FlowAlp Pay: checkout subscription, webhook di rinnovo, gestione via API e confronto con la tokenization.
Un abbonamento addebita il cliente automaticamente a intervallo fisso: il cliente autorizza il pagamento una sola volta sul checkout hosted e FlowAlp Pay esegue i rinnovi per te. Questa guida spiega il checkout subscription, i webhook legati ai rinnovi e come gestire gli abbonamenti attivi tramite API.
Come funzionano gli abbonamenti
- Crei un Gateway con i parametri subscription qui sotto; il cliente autorizza il primo pagamento sul checkout hosted.
- FlowAlp Pay addebita automaticamente le rate successive all'intervallo configurato.
- Il tuo sistema resta sincronizzato tramite i webhook di subscription: attivazione, rinnovi, errori e disdette.
- Modifichi o chiudi l'abbonamento via API o dashboard quando i piani cambiano.
| Parametro | Descrizione | Esempio |
|---|---|---|
subscriptionState | Attiva la gestione subscription per il Gateway | true |
subscriptionInterval | Intervallo di fatturazione (stringa di durata come in PHP DateInterval) | P1M = mensile |
subscriptionPeriod | Durata complessiva dell'abbonamento | P1Y = un anno |
subscriptionCancellationInterval | Periodo di preavviso entro cui il cliente può disdire | P1M = un mese |
Crea un checkout subscription
La richiesta è una normale creazione di Gateway con i parametri subscription. L'amount (in unità minime, CHF 29.00 → 2900) viene addebitato una volta per intervallo:
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": 2900,
"currency": "CHF",
"purpose": "Pro plan (monthly)",
"referenceId": "SUB-CUST-55021",
"subscriptionState": true,
"subscriptionInterval": "P1M",
"subscriptionPeriod": "P1Y",
"subscriptionCancellationInterval": "P1M",
"successRedirectUrl": "https://app.example.com/subscribe/success",
"failedRedirectUrl": "https://app.example.com/subscribe/failed",
"cancelRedirectUrl": "https://app.example.com/subscribe/cancel"
}'Non tutti i payment provider supportano gli abbonamenti. La disponibilità dipende dalla configurazione del tuo account. I checkout subscription si possono creare anche senza codice con i pay link.
Segui i rinnovi con i webhook
Per i Gateway subscription, FlowAlp Pay invia un webhook di subscription (al posto del webhook di transazione) a ogni cambio di stato dell'abbonamento. Il payload contiene status, valid_until — la data del prossimo addebito —, paymentInterval, più i dati di invoice e contatto. Configura il tuo endpoint come descritto in Configurare i webhook e consulta Eventi e payload dei webhook per la struttura esatta.
| Stato | Significato |
|---|---|
active | L'abbonamento è attivo; seguiranno altri addebiti |
overdue | Un addebito è fallito e viene ritentato |
failed | La creazione è fallita, oppure anche il nuovo tentativo di addebito è fallito |
in_notice | Il cliente ha disdetto prima della scadenza; gli addebiti rimanenti proseguono |
cancelled | Disdetto dal merchant con effetto immediato; nessun altro addebito |
Gestisci gli abbonamenti via API
Modifica un abbonamento attivo — ad esempio un upgrade di piano — con una PUT sulla risorsa Subscription. Il nuovo amount vale dal prossimo intervallo di fatturazione:
curl -X PUT "https://api.pay.flowalp.com/v1.16/Subscription/1234/?instance=demo-shop" \
-H "x-api-key: $FLOWALP_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"amount": 4900,
"currency": "CHF",
"purpose": "Business plan (monthly)"
}'Gli abbonamenti si possono creare anche lato server da un contatto esistente (POST /v1.16/Subscription/ con userId, psp, amount, currency, purpose, paymentInterval, period e cancellationInterval). Tutte le operazioni — incluse lettura ed elenco — sono documentate nella API Subscriptions.
La risorsa Subscription è contrassegnata come sperimentale nella documentazione API e un endpoint dedicato alla cancellazione non vi è documentato. Verifica lo stato attuale nella pagina API Subscriptions prima di costruire flussi di disdetta e usa la dashboard dove l'API non copre il tuo caso.
Abbonamenti o tokenization?
Gli abbonamenti sono adatti alla fatturazione periodica fissa: stesso importo, stesso intervallo, rinnovi automatici e regole di disdetta rivolte al cliente. Se gli importi cambiano da periodo a periodo, le date di fatturazione sono irregolari o vuoi pieno controllo su retry e sollecito, costruisci invece sulla tokenization e attiva tu ogni addebito: implementi tu rinnovi e disdette e devi gestire nel codice gli addebiti falliti.
Prossimo passo: la reference API Subscriptions copre creazione, lettura e aggiornamento — e i webhook tengono sincronizzati i tuoi dati di accesso.