API Offline
Gérez des numéros de tracking statiques pour les canaux médias offline : presse, panneaux d'affichage, cartes de visite, et plus encore.
Introduction #
L'API Optico Offline Numbers gère des numéros de tracking statiques, attribués de manière permanente à des numéros de destination spécifiques pour les médias offline tels que les annonces presse, panneaux d'affichage, cartes de visite et catalogues. Contrairement aux numéros de tracking online (attribués dynamiquement par visiteur web), les numéros offline sont persistants et liés à une campagne ou destination nommée.
https://www.optico.fr
Transport & conventions
| Méthode | Tous les endpoints utilisent GET |
| Paramètres | En query string |
| Format de réponse | application/json |
| Timeout | 5 secondes recommandées |
Authentification #
Chaque requête doit inclure le paramètre key, la clé API Offline Numbers du domaine. Cette clé est disponible dans les paramètres de votre domaine dans le back-end Optico.
/offline-numbers-api?key=offl_b7e2c8a14f9dcdef&action=check&tracking_number=0899123456
{"status": "error", "error": "Access denied to this API"}.Erreurs #
Enveloppe de réponse
Chaque requête renvoie 200 OK avec une enveloppe JSON. Branchez-vous sur le champ status ; en cas d'erreur, le champ error indique la raison.
Succès
{ "status": "success", "phone_number": "0612345678", "tracking_number": "0899123456" }
Erreur
{ "status": "error",
"error": "No tracking number available" }
Messages d'erreur courants
| Message | Cause | Correction |
|---|---|---|
Invalid API key | La key est manquante, révoquée, ou n'appartient pas à ce domaine. | Utilisez la clé API Offline Numbers issue des paramètres de votre domaine. |
Access denied to this API | L'API Offline Numbers n'est pas activée pour le domaine. | Contactez Optico pour activer l'API sur le domaine. |
No tracking number available | Le pool privé pour le type demandé est épuisé. | Demandez des numéros supplémentaires à Optico, ou choisissez un autre préfixe. |
Tracking number already assigned | Le numéro que vous tentez d'assign est déjà utilisé. | Utilisez reassign pour changer sa destination, ou faites unassign au préalable. |
Unknown tracking number | Le tracking_number donné ne fait pas partie du pool de ce domaine. | Vérifiez le numéro avec /offline-numbers-api/list. |
Idempotence
Les actions de lecture (check, /list) peuvent être appelées de manière répétée sans risque. Les actions d'écriture (assign, unassign, reassign, redirect_setup) renvoient l'état courant en cas de succès ; renvoyer un unassign ou redirect_setup après succès est un no-op. assign alloue un nouveau numéro depuis le pool à chaque succès ; ne réessayez pas aveuglément sur timeout, appelez d'abord check.
Réessais & timeouts
Utilisez un timeout client de 5 secondes. Réessayez sur timeout réseau ou HTTP 5xx uniquement pour les actions de lecture. Pour assign, traitez un timeout comme « inconnu » et appelez check avec le phone_number de destination pour savoir si un numéro a été alloué avant de réessayer.
Limites de taux
Aucune limite de taux publique fixe n'est appliquée. Ces endpoints sont administratifs ; l'usage typique est de quelques requêtes par jour, pas par seconde. Contactez le support avant de scripter des réassignations en masse.
Endpoints #
| Endpoint | Méthode | Objet |
|---|---|---|
/offline-numbers-api | GET | Gérer les numéros de tracking : assign, unassign, reassign, check, et plus encore. |
/offline-numbers-api/list | GET | Lister tous les numéros de tracking et de destination pour un domaine. |
GET /offline-numbers-api #
Paramètres communs
| Paramètre | Type | Description |
|---|---|---|
key | string Obligatoire | Clé API Offline Numbers du domaine. |
action | string Obligatoire | Une parmi : assign, unassign, reassign, check, redirect_setup. |
phone_number | string | Numéro de téléphone de destination (le numéro réel) vers lequel rediriger les appels. |
tracking_number | string | Le numéro de téléphone de tracking Optico (issu du pool privé). |
description | string | Libellé du numéro de tracking (ex. nom de campagne, emplacement publicitaire). |
type | integer | Type de préfixe du numéro de tracking. Voir le tableau ci-dessous. |
cost_group | string | Pour les numéros surtaxés, filtrage optionnel par groupe de coût. Ex. A299. |
allow_redirect | 0 ou 1 | Détermine si les appels doivent être redirigés lorsque le destinataire ne répond pas. |
timetable | array|int | Plage horaire pour la fonctionnalité de redirection. Passez 0 pour désactiver, ou un tableau d'entrées jour/plage par exemple timetable[monday]=10:00-12:00;17:15-18:24. |
Type et référence des préfixes
| ID | Préfixe | ID | Préfixe | ID | Préfixe | ID | Préfixe |
|---|---|---|---|---|---|---|---|
| 1 | 0800 | 2 | 0810 | 3 | 09 | 4 | 0820 |
| 5 | 0899 | 6 | 01 | 7 | 02 | 8 | 03 |
| 9 | 04 | 10 | 05 | 11 | 0892 | 12 | 0897 |
| 17 | 0826 | 18 | 0805 | 20 | 0811 | 21 | 0821 |
| 22 | 0825 | 23 | 004420 | 24 | 0049 | 25 | 004990 |
| 26 | 0034900 | 27 | 004491 | 28 | 00349 | 29 | 0044800 |
| 30 | 0032 | 31 | 0891 | 32 | 0890 | 33 | 0895 |
| 34 | 0806 |
Champs de la réponse en cas de succès
| Champ | Description |
|---|---|
status | success ou error |
phone_number | Numéro de téléphone de destination (le numéro réel). |
tracking_number | Numéro de tracking Optico attribué. |
allow_redirect | Réglage actuel de la redirection (0 ou 1). |
timetable | Plage horaire active (0 si vide, sinon tableau JSON d'entrées jour/plage). |
Action : assign #
Attribuer un numéro de tracking issu du pool privé du domaine à un numéro de téléphone de destination.
| Paramètre | Obligatoire pour cette action |
|---|---|
phone_number | Obligatoire |
description | Obligatoire |
type | Obligatoire |
allow_redirect, cost_group, timetable, operator | Optionnel |
/offline-numbers-api?key=offl_key&action=assign&phone_number=0612345678&description=Magazine+Ad&type=1&allow_redirect=1
{ "status": "success", "phone_number": "0612345678", "tracking_number": "0899123456", "allow_redirect": "1" }
Action : unassign #
Libérer un numéro de tracking et le remettre dans le pool privé. Fournissez soit tracking_number, soit phone_number.
/offline-numbers-api?key=offl_key&action=unassign&tracking_number=0899123456
Action : reassign #
Changer le numéro de téléphone de destination d'un numéro de tracking existant.
| Paramètre | Obligatoire |
|---|---|
phone_number | Obligatoire |
tracking_number | Obligatoire |
description, allow_redirect | Optionnel |
Action : check #
Interroger l'état courant d'un numéro de tracking ou d'un téléphone de destination. Fournissez soit tracking_number, soit phone_number.
{ "status": "success", "phone_number": "0612345678", "tracking_number": "0899123456", "allow_redirect": "1" }
Action : redirect_setup #
Mettre à jour le drapeau de redirection d'appels et/ou la plage horaire d'un numéro de tracking existant.
| Paramètre | Obligatoire |
|---|---|
allow_redirect | Obligatoire |
tracking_number ou phone_number | Obligatoire (un des deux) |
timetable | Optionnel |
{ "status": "success", "phone_number": "0612345678", "tracking_number": "0899123456",
"allow_redirect": "1", "timetable": [{ "day": "mon", "from": "09:00", "to": "18:00" }] }
GET /offline-numbers-api/list #
Renvoie tous les numéros de tracking (à la fois les numéros offline attribués et les numéros du pool non attribués) associés au domaine.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
key | string Obligatoire | Clé API Offline Numbers. |
details | 0 ou 1 Optionnel | Si 1, renvoie les détails complets par numéro. Par défaut, renvoie une simple correspondance. |
Réponse simple (details=0)
{
"0899123456": "0612345678",
"0899789012": "0698765432"
}
Numéro de tracking → téléphone de destination
Réponse détaillée (details=1)
{
"tracking_number_details": [{
"tracking_phone": "0899123456",
"destination_phone": "0612345678",
"description": "Magazine Ad",
"product_name": "example.com",
"last_update": "2019-10-01 12:00:00"
}]
}