LangageGuide · SDK officiel bientôt

Envoyez des SMS en Tunisie depuis Go avec net/http.

La bibliothèque standard de Go suffit : net/http pour l’appel, encoding/json pour la réponse. Aucun module externe. La librairie Go officielle arrive.

Ce que ça fait

  • Uniquement la bibliothèque standard.
  • Délai d’attente réglé sur le client HTTP.
  • Réponse décodée dans une struct typée.
  • Respectez l’en-tête Retry-After si vous recevez un 429 rate_limited.

Mise en place

  1. 1Ajoutez votre clé API dans la variable d’environnement SENDIMO_API_KEY.
  2. 2Construisez la requête POST sur /v1/messages avec net/http.
  3. 3Lisez la réponse 202 dans une struct Message.
  4. 4Recevez les statuts de livraison par webhook.
Envoyer un SMSGo
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"os"
	"time"
)

type Message struct {
	ID     string `json:"id"`
	Status string `json:"status"`
}

func main() {
	payload, _ := json.Marshal(map[string]string{
		"to":        "+21620123456",
		"from":      "SENDIMO",
		"text":      "Votre code est 482913. Il expire dans 5 minutes.",
		"reference": "order-4821",
	})

	req, _ := http.NewRequest(http.MethodPost, "https://api.sendimo.tn/v1/messages", bytes.NewReader(payload))
	req.Header.Set("Authorization", "Bearer "+os.Getenv("SENDIMO_API_KEY"))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Idempotency-Key", "order-4821-otp")

	client := &http.Client{Timeout: 10 * time.Second}
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()

	var msg Message
	json.NewDecoder(resp.Body).Decode(&msg)
	fmt.Println(resp.StatusCode, msg.ID, msg.Status) // 202 msg_01HF8Z3K9QX2 queued
}
Réponse 202 AcceptedJSON
{
  "id": "msg_01HF8Z3K9QX2",
  "status": "queued",
  "to": "+21620123456",
  "from": "SENDIMO",
  "text": "Votre code est 482913. Il expire dans 5 minutes.",
  "encoding": "GSM-7",
  "segments": 1,
  "network": "ooredoo",
  "cost": { "amount": "0.140", "currency": "TND" },
  "reference": "order-4821",
  "scheduled_at": null,
  "created_at": "2026-10-30T09:15:00Z"
}

Et ensuite

Les autres intégrations

Prêt à envoyer vos SMS ?

Lancement bientôt en Tunisie. Rejoignez l’accès anticipé.