Gestion des Crédits SMS
Les crédits sont l’unité de compte pour l’envoi de SMS. Chaque message consomme un certain nombre de crédits. Notre SDK Dart permet de vérifier votre solde, lister les transactions et gérer les offres de recharge.
Tarification
Notre système propose un pack d’essai de 10 SMS à 250 FCFA et des packs standards facturés entre 16-20 FCFA par crédit selon le volume.
Utilisation
Après avoir initialisé votre SDK, vous pouvez gérer les crédits via les propriétés user, transaction et offer.
Vérification du solde utilisateur
import 'package:mon_sms_pro/mon_sms_pro.dart';
Future<void> checkCredit() async {
try {
final res = await sms.user.credit();
if (res.success) {
print('Crédits disponibles: ${res.data}');
}
} catch (error) {
print('Erreur: $error');
}
}Solde d’une entreprise
Future<void> checkCompanyCredit(String companyId) async {
final res = await sms.company.getCredit(
companyId: companyId,
);
if (res.success) {
print('Crédits entreprise: ${res.data}');
}
}Liste des transactions
Future<void> listTransactions() async {
final res = await sms.transaction.list(
companyId: 'company_id',
count: 20,
page: 1,
);
if (res.success) {
for (final tx in res.data ?? []) {
print('${tx.type} - ${tx.credit} crédits - ${tx.status}');
}
}
}Statistiques de transactions
Future<void> getTransactionStats(String companyId) async {
final res = await sms.transaction.stats(
companyId: companyId,
);
if (res.success) {
final stats = res.data;
print('Crédits utilisés: ${stats?.creditUsed}');
print('Crédits disponibles: ${stats?.creditAvailable}');
}
}Usage des crédits par période
Future<void> getCreditUsage(String companyId) async {
final res = await sms.transaction.creditUsage(
companyId: companyId,
interval: TransactionPeriod.day,
date: '2026-02-10',
);
if (res.success) {
final usage = res.data;
print('SMS envoyés: ${usage?.smsSentCount}');
print('Crédits utilisés: ${usage?.totalCreditUsed}');
print('Crédits achetés: ${usage?.totalCreditPurchased}');
}
}Liste des offres
Future<void> listOffers() async {
final res = await sms.offer.list();
if (res.success) {
for (final offer in res.data ?? []) {
print('${offer.name} - ${offer.credit} crédits - ${offer.price} FCFA');
}
}
}Création d’une transaction de recharge
Future<void> rechargeCredits() async {
final res = await sms.transaction.create(
offerId: 'offer_id',
paymentMethod: PaymentMethod.omCi, // Orange Money CI
companyId: 'company_id',
);
if (res.success) {
print('Transaction créée: ${res.data?.id}');
print('Statut: ${res.data?.status}'); // PENDING
}
}Vérification du statut d’une transaction
Future<void> checkTransaction(String transactionId) async {
final res = await sms.transaction.check(id: transactionId);
if (res.success) {
print('Statut: ${res.data?.status}'); // PENDING, CHARGED, FAILED
print('Crédits: ${res.data?.credit}');
}
}Surveillez régulièrement votre solde et rechargez avant épuisement pour éviter toute interruption de service.
Méthodes de paiement
| Méthode | Enum |
|---|---|
| Orange Money CI | PaymentMethod.omCi |
| MTN Mobile Money | PaymentMethod.mtnCi |
| Moov Money | PaymentMethod.moovCi |
| Wave | PaymentMethod.waveCi |
Offres disponibles
| Offre | Enum |
|---|---|
| Starter | OfferName.starter |
| Bronze | OfferName.bronze |
| Fer | OfferName.fer |
| Or | OfferName.or |
| Diamant | OfferName.diamant |
| VIP | OfferName.vip |
FAQ
Les crédits expirent-ils ?
Non, les crédits n’expirent pas et restent disponibles tant que votre compte est actif.
Comment sont calculés les coûts ?
Un crédit = une page SMS. Une page contient 160 caractères (GSM-7) ou 70 caractères (UCS-2 pour les caractères spéciaux).