Envoyer un SMS
POST https://api.aureusprime.com/v1/sms/messages
Met un SMS en file. Réponse 202. Un crédit est réservé tout de suite ; il est consommé si le SMS est envoyé, rendu s'il est refusé avant l'envoi.
Corps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
to |
string | oui | Mobile du Cameroun : 699123456, +237 6 99 12 34 56, 00237699123456 ou 237699123456 |
text |
string | oui | 160 caractères en alphabet GSM, 70 dès qu'un caractère en sort (voir ci-dessous) |
senderId |
string | non | Expéditeur validé de votre compte ; par défaut l'expéditeur commun |
sensitive |
boolean | non | true pour un code ou un secret : texte effacé dès l'envoi, jamais conservé |
scheduledAt |
string | non | Envoi planifié (voir Planifier un SMS) |
Longueur et encodage : 1 crédit = 1 SMS, jamais coupé. 160 caractères si le texte n'utilise que l'alphabet GSM (lettres sans accent, é è à ù, chiffres, ponctuation courante) ; € [ ] { } ^ ~ | \ y comptent pour 2. Dès qu'un seul caractère sort de cet alphabet (ê, ô, î, ç, « », °, ’, emoji), tout le SMS passe en Unicode et la limite tombe à 70 caractères (un emoji compte pour 2). Au-delà : refus 422 TEXT_TOO_LONG, jamais de coupure ni de SMS facturé plusieurs fois. Astuce : « no » plutôt que « n° », apostrophe droite ' plutôt que ’.
En-tête facultatif : Idempotency-Key
Envoyez la même clé (100 caractères visibles au plus) pour rejouer une demande sans nouveau débit : la réponse renvoie le même message, avec "replayed": true. Si la même clé sert pour un autre numéro ou un autre expéditeur : 409 IDEMPOTENCY_CONFLICT. Voir Bonnes pratiques.
Exemple
curl -X POST https://api.aureusprime.com/v1/sms/messages \
-H "Authorization: Bearer adk_sms_VOTRE_CLE" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: commande-4821" \
-d '{"to": "677000222", "text": "Commande no 4821 confirmée. Livraison demain.", "sensitive": false}'
const response = await fetch("https://api.aureusprime.com/v1/sms/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AUREUS_SMS_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "commande-4821",
},
body: JSON.stringify({ to: "677000222", text: "Commande no 4821 confirmée." }),
});
const message = await response.json();
Réponse
{
"id": "5b0f2c1e-8a4d-4f7e-9c3a-1d2b3c4d5e6f",
"status": "QUEUED",
"to": "+237*******22",
"operator": "MTN",
"senderId": "Aureus Desk",
"errorCode": null,
"scheduledAt": null,
"createdAt": "2026-11-01T10:00:00.000Z",
"sentAt": null,
"deliveredAt": null,
"likelyUndelivered": false
}
likelyUndelivered: true : le numéro appartient à un opérateur que nous ne desservons pas aujourd'hui (Camtel, Nextell). Le SMS est tenté ; s'il est refusé, le crédit est rendu.
Refus avant la file (aucun débit)
| Code | Cas |
|---|---|
422 PHONE_INVALID |
Numéro mal formé |
422 PHONE_NOT_COVERED |
Numéro hors Cameroun ou fixe |
422 TEXT_INVALID / TEXT_TOO_LONG |
Texte vide, avec caractères de contrôle, ou trop long pour un SMS (160 en GSM, 70 en Unicode) |
422 SENDER_INVALID / SENDER_NOT_APPROVED / SENDER_NOT_ALLOWED |
Expéditeur hors format, pas encore validé, ou réservé aux organisations |
422 SCHEDULE_INVALID |
scheduledAt invalide |
402 INSUFFICIENT_CREDITS |
Plus de crédits |
403 VERIFICATION_REQUIRED |
Identité ou entreprise pas encore vérifiée |