Documentazione API
Benvenuto nella documentazione API di FidelityApp. Queste API RESTful permettono ai software gestionali (es. sistemi di cassa, CRM, gestori di appuntamenti) di comunicare direttamente con il circuito fedeltà del negoziante.
Autenticazione (API Key)
Tutte le richieste API devono essere autenticate. Il negoziante deve generare la propria API Key all'interno dell'app FidelityApp (sezione Configurazione Negozio -> Integrazione API).
La chiave deve essere inclusa nell'header HTTP Authorization come Bearer token.
Nota: L'utilizzo delle API è riservato ai negozianti con piano PRO attivo.
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxx
Content-Type: application/json
Aggiungi Punti
Questo endpoint permette di inviare l'importo speso da un cliente. Il server calcolerà automaticamente i punti da assegnare in base al tasso di conversione (es. 1€ = 10 punti) impostato dal negoziante nell'app.
Body Parameters (JSON)
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| customerId | string | Sì | L'ID univoco del cliente (es. 100456). Questo codice a 6 cifre viene generato dinamicamente dal QR Code del cliente o può essere digitato manualmente. |
| amountSpent | number | Sì | L'importo totale speso in valuta locale (es. 25.50). Deve essere maggiore di 0. |
Esempio Richiesta
{
"customerId": "100456",
"amountSpent": 45.00
}
Esempio Risposta (200 OK)
{
"success": true,
"message": "Punti aggiunti con successo",
"data": {
"pointsEarned": 45,
"amountSpent": 45.00
}
}
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://us-central1-fidelity-app-d561d.cloudfunctions.net/apiAddPoints", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode([ 'customerId' => '100456', 'amountSpent' => 45.00 ]), CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_live_YOUR_API_KEY", "Content-Type: application/json" ], ]); $response = curl_exec($curl); curl_close($curl); echo $response; ?>
Invia Notifica Push
Invia una notifica push (promemoria, offerta, ecc.) agli smartphone dei clienti. Puoi inviarla a un singolo cliente specifico oppure a tutto il tuo database clienti in un colpo solo.
Body Parameters (JSON)
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| title | string | Sì | Il titolo della notifica. |
| message | string | Sì | Il testo principale della notifica. |
| customerId | string | No | Se specificato (es. 100456), la notifica verrà inviata SOLO a questo cliente. Se omesso, verrà inviata in broadcast a tutti i clienti del negozio. |
Esempio Richiesta
{
"title": "Promemoria Appuntamento",
"message": "Ti aspettiamo domani alle 15:00!",
"customerId": "100456"
}
Esempio Risposta (200 OK)
{
"success": true,
"message": "Notifica inviata con successo",
"data": {
"recipients": 1
}
}
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://us-central1-fidelity-app-d561d.cloudfunctions.net/apiSendNotification", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode([ 'title' => 'Promemoria Appuntamento', 'message' => 'Ti aspettiamo domani alle 15:00!', 'customerId' => '100456' ]), CURLOPT_HTTPHEADER => [ "Authorization: Bearer sk_live_YOUR_API_KEY", "Content-Type: application/json" ], ]); $response = curl_exec($curl); curl_close($curl); echo $response; ?>
Gestione Errori
Se una richiesta fallisce, l'API restituirà un codice di stato HTTP appropriato e un oggetto JSON contenente i dettagli dell'errore.
{
"error": "API Key non valida"
}
- 400 Bad Request: Parametri mancanti o non validi.
- 401 Unauthorized: API Key mancante o non valida.
- 403 Forbidden: Il negozio non ha il piano PRO attivo o il cliente ha disattivato le notifiche.
- 404 Not Found: Il customerId fornito non esiste.
- 500 Internal Server Error: Errore imprevisto sui nostri server.