Skip to Content
BibliothequesDartGestion des Crédits 💰

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

lib/services/credit_service.dart
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éthodeEnum
Orange Money CIPaymentMethod.omCi
MTN Mobile MoneyPaymentMethod.mtnCi
Moov MoneyPaymentMethod.moovCi
WavePaymentMethod.waveCi

Offres disponibles

OffreEnum
StarterOfferName.starter
BronzeOfferName.bronze
FerOfferName.fer
OrOfferName.or
DiamantOfferName.diamant
VIPOfferName.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).

Last updated on