Skip to main content
Statuts que FireFlo renvoie sur submit_sm_resp au-delà de l’ensemble SMPP standard. C’est toute la liste.

Ce que chacun n’est délibérément pas

0x402 n’est pas ESME_RTHROTTLED. Throttled dit à un client de faire un back-off et de réessayer, ce qui est exactement faux pour une condition que seul un rechargement ou une facture peut lever. Un client qui réessaie un refus de crédit brûle sa propre capacité sans rien accomplir.
Prépayé et postpayé refusent à l’identique. 0x402 sur SMPP, 402 avec insufficientCredit sur HTTP, quel que soit le mode dans lequel se trouve le compte. L’intégration d’un client n’a pas besoin de savoir dans lequel il se trouve.
0x14 est un signal de contre-pression bien élevé. Un ESME qui le respecte fait un back-off et réessaie. C’est le seul refus ici qu’un client devrait réessayer. 0x40F porte un code et deux lignes WARN distinctes — produit vide versus nom inconnu. Le client ne voit jamais que le nombre, donc le log est où on les distingue.

Classification côté fournisseur

Les codes qu’un fournisseur renvoie sont classés par status.retry.worker et status.retry.router — voir Réglages fournisseur. ESME_RSUBMITFAIL (0x45, décimal 69) est traité comme permanent. Il est vraiment ambigu à travers les SMSC — certains signifient une surcharge transitoire — donc c’est une opt-in par fournisseur plutôt qu’une reclassification globale.

Où un refus est enregistré

Rien de ce qui est refusé à l’entrée n’est facturé. Le chemin REST facture avant de publier, donc un refus queue-full là-bas rembourse ; le chemin SMPP refuse avant d’accepter, donc il n’y a rien à rembourser. Voir Refus pour les relire.