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.
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.