OmniManager Docs

Prise en main

Prise en main de l'API OmniManager

Authentification, enveloppe de réponse, permissions et limites de débit communes à toutes les routes /api/v1.

L'API publique OmniManager (/api/v1/**) donne un accès programmatique au compte d'un tenant via une clé API propre au tenant : boutiques, connexion et envoi WhatsApp, statuts, groupes, et gestion du consentement — avec la politique anti-bannissement de la plateforme appliquée en votre nom à chaque envoi.

URL de base : https://console.omni-manager.com/api/v1

Authentification

Créez une clé dans Paramètres → API (nécessite canEditSettings), ou demandez à un administrateur OmniManager d'en créer une pour votre tenant. La clé brute (omk_live_…) n'est affichée qu'une seule fois ; seule son empreinte SHA-256 est stockée, donc si vous la perdez, vous devez la régénérer, pas la « récupérer ».

Envoyez-la à chaque requête :

Authorization: Bearer omk_live_YOUR_KEY

(x-api-key: omk_live_YOUR_KEY est accepté comme alias.)

Une clé peut porter une expiration et une liste blanche d'IP ; révoquer une clé (depuis les Paramètres ou l'administration) prend effet immédiatement — la requête suivante avec cette clé échoue avec 401 API_KEY_REVOKED.

Permissions

Chaque route requiert une permission de cette liste (src/libs/api-keys/permissions.ts) ; une clé ne dispose que de celles qui lui ont été accordées :

PermissionAccorde
shops.readlister/lire les boutiques
shops.writecréer des boutiques
whatsapp.readlire l'état du canal WhatsApp
whatsapp.connectdémarrer/interroger/arrêter la connexion WhatsApp
messages.sendenvoyer des messages WhatsApp
messages.readlire l'état des messages/livraisons
statuses.postpublier un statut WhatsApp
contacts.readlister les contacts déclarés (consentants)
contacts.writedéclarer / révoquer des contacts consentants
groups.readlister les groupes WhatsApp de la boutique

GET /me ne nécessite aucune de ces permissions — une clé n'ayant qu'une seule permission peut tout de même se vérifier elle-même.

Enveloppe

Chaque réponse prend l'une de ces deux formes :

// succès
{ "success": true, "data": { /* … */ } }
// erreur
{ "success": false, "error": { "code": "DAILY_CAP_REACHED", "message": "…", "retryAfter": 3600 } }

Chaque réponse porte X-Request-Id (renvoyé tel quel si vous en fournissez un) et, une fois authentifié, X-RateLimit-Limit / Remaining / Reset / Scope pour le compartiment que cette requête vient de consommer.

Codes d'erreur courants

HTTPcodesignification
401API_KEY_MISSING / API_KEY_INVALID / API_KEY_REVOKED / API_KEY_EXPIREDproblèmes de clé
402 / 429QUOTA_EXCEEDEDquota du plan ou capacité épuisée
403IP_NOT_ALLOWED / TENANT_INACTIVE / FORBIDDEN_PERMISSIONaccès refusé
404SHOP_NOT_FOUND / MESSAGE_NOT_FOUND / DOC_ARTICLE_NOT_FOUND
409AMBIGUOUS_SHOPplusieurs boutiques partagent ce nom — passez l'identifiant à la place
409WHATSAPP_NOT_CONFIGUREDfaites un GET sur connect avant tout POST connect
422VALIDATION_ERRORcorps/requête invalide (error.fields)
429RATE_LIMITEDlimite par clé à la minute/heure/jour (Retry-After)
429codes de la politique anti-bannissementvoir Messagerie et politique anti-bannissement
503BOT_SERVICE_UNREACHABLE / WHATSAPP_NOT_CONNECTED / WHATSAPP_SESSION_LOSTsession / bot indisponible

Limites de débit et mesure d'usage

Par clé, par défaut : 60/min, 1 000/h, 10 000/jour (voir les en-têtes X-RateLimit-* sur chaque réponse ; un dépassement renvoie 429 RATE_LIMITED avec Retry-After). Chaque appel compte dans le forfait api_calls du plan, visible via GET /me ; chaque requête est journalisée (modèle de route, statut, latence, IP — jamais le corps de la requête) et visible par les administrateurs OmniManager.

Premier appel

curl -s -H "Authorization: Bearer omk_live_YOUR_KEY" https://console.omni-manager.com/api/v1/me

renvoie les permissions de votre clé, ses limites de débit et le quota api_calls restant.

MarkdownSchéma OpenAPI