UC-016 — Monitorare Credito e Abbonamento
| Campo | Valore |
|---|---|
| ID | UC-016 |
| Obiettivo | Verificare abbonamento, credito residuo e quota contatti |
| Canale | Tutti |
| Complessità | Base |
| Tempo stimato | 5 minuti |
| API coinvolte | GET /api/v1/partner-gateway/subscription, GET /api/v1/partner-gateway/subscription/contacts, GET /api/v1/partner-gateway/subscription/credit |
Scenari reali
- Dashboard billing: Il CFO di MarketingPro integra i dati di abbonamento nella dashboard interna per monitorare i costi mensili di messaggistica.
- Alert credito basso: Il sistema di TechStore invia un alert Slack automatico quando il credito scende sotto i 50 EUR, evitando interruzioni di servizio.
- Verifica quota contatti: Prima di importare 10.000 nuovi contatti, il team verifica che il piano attuale abbia capienza sufficiente.
Flusso di monitoraggio
Il diagramma mostra le tre query principali per avere una visione completa dello stato del tuo account.
Prerequisiti
- API Key attiva con permessi di lettura billing
- Abbonamento attivo sulla piattaforma Qlara
Step 1 — Verifica lo stato dell'abbonamento
Recupera i dettagli del piano attivo e la data di scadenza.
curl -X GET https://lora-api.agiletelecom.com/api/v1/partner-gateway/subscription \
-H "X-Api-Key: YOUR_API_KEY"
Response — Abbonamento attivo
{
"subscriptionId": "sub_abc123def456",
"plan": "Business Pro",
"status": "ACTIVE",
"startDate": "2026-01-01T00:00:00+01:00",
"endDate": "2026-12-31T23:59:59+01:00",
"autoRenew": true,
"features": {
"sms": true,
"rcs": true,
"whatsapp": true,
"maxContacts": 50000,
"webhooks": true
}
}
:::info Piano e funzionalita
Il campo features indica quali canali e funzionalita sono inclusi nel tuo piano. Se un canale risulta false, le chiamate API per quel canale restituiranno 403 Forbidden.
:::
Dietro le quinte — Come funziona il billing
- Piano: Ogni account ha un piano associato che definisce i canali abilitati, il numero massimo di contatti e il credito mensile incluso.
- Rinnovo: Se
autoRenewetrue, il piano si rinnova automaticamente alla scadenza. In caso di mancato pagamento, l'account passa in statoSUSPENDEDdopo 7 giorni di grazia. - Upgrade/Downgrade: Le modifiche al piano sono immediate per gli upgrade, applicate al ciclo successivo per i downgrade.
- Credito: Il credito viene scalato ad ogni messaggio inviato. Il costo varia per canale e destinazione.
Step 2 — Controlla il credito residuo
Verifica quanto credito e disponibile per l'invio di messaggi.
curl -X GET https://lora-api.agiletelecom.com/api/v1/partner-gateway/subscription/credit \
-H "X-Api-Key: YOUR_API_KEY"
Response — Credito disponibile
{
"balance": 1250.75,
"currency": "EUR",
"lastRechargeDate": "2026-04-01T00:00:00+02:00",
"lastRechargeAmount": 500.00,
"estimatedMessagesRemaining": {
"sms": 35735,
"rcs": 25015,
"whatsapp": 17867
}
}
:::warning Imposta alert automatici
Configura un job periodico che interroga questo endpoint e invia una notifica quando balance scende sotto una soglia critica per evitare interruzioni di servizio.
:::
Step 3 — Verifica la quota contatti
Controlla quanti contatti hai utilizzato rispetto al limite del piano.
curl -X GET https://lora-api.agiletelecom.com/api/v1/partner-gateway/subscription/contacts \
-H "X-Api-Key: YOUR_API_KEY"
Response — Quota contatti
{
"used": 32450,
"total": 50000,
"percentage": 64.9,
"lists": 12
}
Dietro le quinte — Calcolo quota contatti
- Conteggio: Ogni contatto unico (per numero di telefono) viene contato una sola volta, anche se presente in più liste.
- Deduplicazione: Il sistema deduplica automaticamente i contatti con lo stesso numero normalizzato (es.
+39347...e0347...sono lo stesso contatto). - Soglie: Al raggiungimento dell'80% della quota, la piattaforma invia una email di avviso. Al 100%, le importazioni vengono bloccate ma l'invio ai contatti esistenti resta attivo.
Risultato atteso
| Step | Azione | Risultato |
|---|---|---|
| 1 | GET /subscription | Piano attivo, canali abilitati, scadenza |
| 2 | GET /subscription/credit | Saldo in EUR, stima messaggi rimanenti |
| 3 | GET /subscription/contacts | Contatti usati vs. totale disponibili |
Esempio completo end-to-end
Scenario TechStore: script di monitoraggio con alert.
# 1. Verifica abbonamento attivo
echo "=== Stato Abbonamento ==="
curl -s -X GET https://lora-api.agiletelecom.com/api/v1/partner-gateway/subscription \
-H "X-Api-Key: YOUR_API_KEY" | jq '{plan: .plan, status: .status, endDate: .endDate}'
# 2. Controlla credito residuo
echo "=== Credito Residuo ==="
BALANCE=$(curl -s -X GET https://lora-api.agiletelecom.com/api/v1/partner-gateway/subscription/credit \
-H "X-Api-Key: YOUR_API_KEY" | jq -r '.balance')
echo "Saldo: EUR $BALANCE"
# 3. Alert se credito basso
if (( $(echo "$BALANCE < 50" | bc -l) )); then
echo "ATTENZIONE: Credito sotto soglia critica!"
fi
# 4. Verifica quota contatti
echo "=== Quota Contatti ==="
curl -s -X GET https://lora-api.agiletelecom.com/api/v1/partner-gateway/subscription/contacts \
-H "X-Api-Key: YOUR_API_KEY" | jq '{used: .used, total: .total, percentage: .percentage}'
Varianti
Monitoraggio programmato con cron
Integra lo script in un cron job per verifiche automatiche giornaliere:
# crontab -e
# Ogni giorno alle 8:00 - verifica credito
0 8 * * * /opt/scripts/check-credit.sh >> /var/log/credit-monitor.log 2>&1
Errori comuni
401 Unauthorized — API Key mancante
{
"status": "fail",
"data": {
"authentication": "Invalid or missing API key"
}
}
Soluzione: Verifica che l'header X-Api-Key sia presente e valido.
403 Forbidden — Permessi billing non abilitati
{
"status": "fail",
"data": {
"authorization": "API key does not have billing read permissions"
}
}
Soluzione: La tua API Key deve avere i permessi di lettura billing. Contatta l'admin per abilitarli o crea una nuova chiave con i permessi corretti.
Prossimi passi
- UC-014 — API Key Management: Gestisci le chiavi di accesso al tuo account
- UC-007 — Gestione Contatti e Liste: Organizza i contatti prima di verificare la quota
- UC-006 — Campagna Bulk SMS: Pianifica campagne in base al credito disponibile