Aller au contenu

Guides

Cycle de vie d’un message

Les états par lesquels passent un message et un lot, et ce sur quoi vous pouvez compter à chacun d’eux.

Comment un message progresse

Chaque message commence en file d’attente ou planifié, et finit dans exactement un état terminal. Terminal veut dire terminal : un message qui en atteint un ne change plus jamais d’état.

SCHEDULED ─→ QUEUED ⇄ RETRY_SCHEDULED ─→ SUBMITTED ─→ SENT ─→ DELIVERED
     │          │                            │                └→ FAILED │ EXPIRED │ REJECTED
     │          │                            └──────────────────→ FAILED
     └──────────┴──→ CANCELLED
ValeurSignification
SCHEDULED
En attente de son heure planifiée.
QUEUED
En attente du routeur.
RETRY_SCHEDULED
Une tentative de livraison a échoué et une autre est planifiée.
SUBMITTED
Remis à un fournisseur qui n’a pas encore renvoyé de référence. Un message bloqué ici est le problème de SMSend, pas le vôtre.
SENT
Le fournisseur l’a accepté et a renvoyé une référence.
DELIVEREDTerminal
Le téléphone a confirmé la réception.
FAILEDTerminal
La livraison a échoué. Le motif est dans failed_reason.
EXPIREDTerminal
Aucun accusé de réception n’est arrivé dans les 48 heures.
REJECTEDTerminal
Le fournisseur ou l’opérateur l’a refusé.
CANCELLEDTerminal
Écarté au moment de l’envoi, ou annulé avec son lot.

Pourquoi les accusés ne peuvent pas revenir en arrière

Chaque statut porte un rang, et un accusé de réception n’est appliqué que s’il augmente strictement ce rang. Les opérateurs livrent parfois les accusés dans le désordre et, sans cette règle, un accusé « soumis » arrivé en retard écraserait un message déjà confirmé comme livré.

Comment un lot progresse

Un lot suit le travail dans son ensemble. Seul SETTLED signifie qu’il est terminé et que les comptes sont soldés.

VALIDATING ─→ SCHEDULED ─→ QUEUED ─→ SENDING ─→ SETTLED
     │             └──────────┴─────────┴──→ CANCELLED
     └──→ REJECTED │ FAILED
ValeurSignification
VALIDATING
Accepté mais pas encore tarifé ni payé. Atteignable uniquement sur le chemin asynchrone, et expire au bout de 30 minutes.
SCHEDULED
Tarifé et réservé, en attente de son heure planifiée.
QUEUED
Tarifé et réservé, en attente du routeur.
SENDING
En cours d’envoi.
SETTLEDTerminal
Terminé, comptes soldés et remboursement éventuel passé.
REJECTEDTerminal
Tous les destinataires ont été écartés avant la moindre réservation.
FAILEDTerminal
La validation elle-même a échoué.
CANCELLEDTerminal
Annulé avant ou pendant l’envoi, et remboursé.

Lire les compteurs

L’objet counts d’un lot indique combien de messages ont atteint chaque état à un moment donné. Le chiffre des échecs agrège les messages en échec, expirés et rejetés, parce que du point de vue du rapprochement ce sont une seule et même catégorie.

Les compteurs sont cumulatifs, pas instantanés

Règlement

Un lot est réglé quand chaque message a atteint un état terminal, ou quand 72 heures se sont écoulées depuis son heure d’envoi prévue alors que des messages restent bloqués. Les deux cas produisent un événement BATCH_SETTLED ; le champ trigger vous dit lequel des deux c’était.

Le règlement est le seul moment où un chiffre de remboursement existe. SMSend réserve les fonds du lot entier à l’avance et rembourse la différence une seule fois, à la fin : aucun message pris isolément ne peut donc vous dire ce qu’il a coûté ni ce qui a été rendu — c’est pourquoi les événements par message ne portent délibérément aucun champ monétaire.