Changelog

API Changelog

Chaque changement visible par un intégrateur, daté. Dans /v1 l'API n'évolue que par ajouts.

← Retour à la documentationPolitique de versionnement et de dépréciation

Nombres de test sandbox, catalogue d'erreurs, versionnement

  • Nouveau : avec une clé sandbox, +212600000002 échoue, +212600000003 est non délivrable, +212600000004 est désabonné (403 OPTED_OUT) et +212600000005 ne reçoit jamais d'accusé — chacun avec son webhook.
  • Corrigé : l'accusé simulé d'une clé sandbox partait sous le nom d'événement message.message.delivered ; il part désormais en message.delivered.
  • Politique de versionnement : /v1 n'évolue que par ajouts ; un retrait est annoncé 12 mois à l'avance, avec les en-têtes Deprecation et Sunset sur la route concernée.
  • Webhooks : GET /v1/webhooks/logs et POST /v1/webhooks/logs/{log_id}/replay pour relire et rejouer une livraison.
  • Modèles WhatsApp : carrousels et boutons FLOW dans POST /v1/templates ; une revue EnvoiSMS automatique avant Meta (TEMPLATE_PENDING_REVIEW, TEMPLATE_REJECTED_BY_REVIEW).
  • Campagnes WhatsApp : template_variables (_header_media_url, _button_<i>, "static:…") et consent_attested, obligatoire pour un modèle marketing (CONSENT_ATTESTATION_REQUIRED).
  • Une route inexistante courante (/v1/sms, /v1/send…) répond 404 en nommant la bonne route.

WhatsApp à l'international

  • Un message WhatsApp vers l'étranger est facturé selon le marché Meta du destinataire.
  • Nouveau code 429 OTP_COUNTRY_PAUSED : codes vers un pays hors Maroc suspendus pour la journée quand trop peu sont confirmés.
  • Une clé API peut téléverser un média pour un envoi (POST /v1/whatsapp/media/upload) ; les autres modifications WhatsApp restent réservées au tableau de bord.

Sender ID non enregistré

  • SENDER_ID_NOT_REGISTERED n'est plus renvoyé : un Sender ID personnalisé non enregistré part par la route standard.

Clés sandbox

  • Une clé sandbox simule tout le parcours de vérification (send, resend, check) et la recherche de numéro, sans rien facturer ; sandbox_code est renvoyé.

Idempotence, webhooks signés v2, recherche de numéro

  • En-tête Idempotency-Key sur POST /v1/messages et /v1/messages/bulk.
  • X-EnvoiSMS-Signature-256 (horodatée, contre le rejeu) sur chaque webhook ; l'ancien X-EnvoiSMS-Signature reste envoyé.
  • GET /v1/lookup/{number} : validité, pays et opérateur d'un numéro.

API v1 stable

  • SMS vers les opérateurs marocains et WhatsApp Business, cascade WhatsApp → SMS, webhooks de livraison signés.