Guides

Boxis API

Comment une requête est signée

Chaque appel est un POST vers https://api.boxis.net/. Le secret ne voyage pas. Il ne sert qu’à produire la signature.

En-têtes

Envoyez le corps JSON brut et ces en-têtes. X-Boxis-Key est l’identifiant public. X-Boxis-Consumer est l’autorisation de compte. X-Boxis-Method et X-Boxis-Path sont la route accordée, pas le verbe HTTP du POST. X-Boxis-Timestamp est l’heure unix en secondes. X-Boxis-Signature est le HMAC-SHA256 en hexadécimal minuscule.

X-Boxis-Key: bxk_...
X-Boxis-Consumer: bxu_...
X-Boxis-Method: GET
X-Boxis-Path: /sms/timestamp
X-Boxis-Timestamp: 1727450000
X-Boxis-Signature: hex hmac-sha256
Content-Type: application/json

Chaîne canonique

Joignez ces cinq lignes par un saut de ligne. Calculez le SHA-256 des octets exacts que vous envoyez. Signez cette chaîne en HMAC-SHA256 avec le secret.

{account authorization}
{METHOD}
https://api.boxis.net{path}
{unix timestamp}
{sha256 of the raw body}

Une espace, un ordre de champs JSON différent, ou un saut de ligne en trop change le hachage et la signature ne correspond plus.

Route et corps

Le corps JSON choisit la section et la commande. Les champs inconnus sont ignorés. La méthode et le chemin signés doivent être accordés à la clé, et ils doivent être la route de cette commande. Un écart donne HTTP 403. Une section réservée donne HTTP 501.

{"section":"/sms","command":"getAPITimestamp"}

Temps, IP, limites

  • L’horodatage doit être dans une fenêtre de 5 minutes. La même signature est refusée une seconde fois.
  • api.boxis.net enregistre l’adresse de l’appelant. Si la clé a une liste d’IP, toute autre adresse reçoit HTTP 401. L’appelant ne choisit pas cette adresse.
  • Trop de requêtes renvoie HTTP 429. Des échecs d’authentification répétés peuvent bloquer l’adresse source un moment.
  • Une clé révoquée, expirée, ou inutilisée depuis un an est refusée à la requête suivante.

Réponse

Le succès est HTTP 201 pour sendSMS et HTTP 200 pour les autres commandes en service. Le corps contient result, message et data. Une erreur contient code et message. La référence liste chaque code.

Explorer la référence API Référence API