Torna al sito
API Reference v1

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

POST

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.

URL: https://us-central1-fidelity-app-d561d.cloudfunctions.net/apiAddPoints

Body Parameters (JSON)

Parametro Tipo Obbligatorio Descrizione
customerId string 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 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;
?>

POST

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.

URL: https://us-central1-fidelity-app-d561d.cloudfunctions.net/apiSendNotification

Body Parameters (JSON)

Parametro Tipo Obbligatorio Descrizione
title string Il titolo della notifica.
message string 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.