Aller au contenu
QasqadAPI

Démarrer en 5 minutes

Générez une clé, vérifiez-la, puis envoyez une première affectation sans toucher à votre flotte.

Générez une clé

Dans l'application, menu Paramètres › Espace développeur. La clé n'est affichée qu'une fois : copiez-la dans votre coffre de secrets.

Vérifiez-la

POST /api/auth/verify ne fait que contrôler la clé et la signature. Il répond 201 avec {"status":"valid"}.

Envoyez une affectation en mode test

Avec ?dryRun=true, la requête est validée de bout en bout mais rien n'est écrit dans votre flotte. Un 201 vaut feu vert : retirez dryRun pour passer en réel.

Le script ci-dessous fait les deux appels. Il ne demande que openssl et curl.

demarrer.sh
API_KEY="votre_clé"   # à lire depuis un coffre ou une variable d'environnement

# signe un corps et l'envoie : sign_and_post <url> <corps>
sign_and_post() {
  TS=$(( $(date +%s) * 1000 ))
  HASH=$(printf '%s' "$2" | openssl dgst -sha256 -hex | awk '{print $NF}')
  SIG=$(printf '%s' "$TS.$HASH" | openssl dgst -sha256 -hmac "$API_KEY" -hex | awk '{print $NF}')
  curl -sS -X POST "$1" \
    -H "Content-Type: application/json" \
    -H "x-api-key: $API_KEY" -H "x-timestamp: $TS" -H "x-signature: $SIG" \
    --data-raw "$2" -w '\nHTTP %{http_code}\n'
}

# 1. la clé et la signature sont-elles bonnes ?  → {"status":"valid"} HTTP 201
sign_and_post "https://api.fpsnavigator.com/api/auth/verify" '{}'

# 2. une affectation, en mode test  → HTTP 201
sign_and_post "https://api.fpsnavigator.com/api/fleet?dryRun=true" \
  '{"vehicleAssignments":[{"licencePlate":"AB-123-CD","startDate":"2025-02-17T00:00:00+01:00","driverEmail":"conducteur@entreprise.fr"}]}'

Un 401 ?

Neuf fois sur dix : l'horodatage est en secondes au lieu de millisecondes, ou le corps envoyé n'est pas exactement celui qui a été signé. Voir Authentification.

Sur cette page