Skip to Content
Nouvelle documentation Applite - JS SDK, Dart SDK & REST API

Duticotac

Le module Duticotac gère les paiements mobiles, les offres et les transactions via le SDK @applite/duticotac.

Installation

pnpm add @applite/duticotac

Initialisation

import { DuticotacSDK } from "@applite/duticotac"; const duticotac = new DuticotacSDK({ apiKey: "your_api_key", appId: "your_app_id", // optionnel });

Le SDK se connecte par défaut à https://api.applite.freddydro.dev.

Sous-modules

  • duticotac.balance — Solde
  • duticotac.offer — Gestion des offres
  • duticotac.mobileMoney — Paiements mobile money
  • duticotac.paymentMethod — Méthodes de paiement
  • duticotac.transaction — Transactions et polling
  • duticotac.webhook — Configuration webhook

Balance

balance.balance()

Récupère le solde Duticotac.

const response = await duticotac.balance.balance(); console.log("Solde:", response.data);

Offres

offer.create()

Crée une nouvelle offre.

const response = await duticotac.offer.create({ name: "Forfait Premium", ref: "premium-monthly", price: 5000, platform: "DUTICOTAC", type: "STATIC", description: "Accès premium mensuel", });

offer.update()

Modifie une offre existante.

await duticotac.offer.update({ ref: "premium-monthly", name: "Forfait Premium V2", price: 7500, });

offer.list()

Liste toutes les offres.

const response = await duticotac.offer.list();

offer.get()

Récupère une offre par référence.

const response = await duticotac.offer.get({ ref: "premium-monthly" });

offer.delete()

Supprime une offre.

await duticotac.offer.delete({ ref: "premium-monthly" });

Paiements Mobile Money

mobileMoney.cashin()

Effectue un encaissement mobile money.

await duticotac.mobileMoney.cashin({ amount: 5000, phone: "+2250700000000", paymentMethod: "OM_CI", password: "password123", });

mobileMoney.cashout()

Effectue un décaissement. Lance une DuticotacError si l’OTP est manquant pour Orange Money, ou si ref et idFromClient sont tous les deux absents.

await duticotac.mobileMoney.cashout({ transactionId: "txn_123", ref: "ref_123", phone: "+2250700000000", name: "Jean Dupont", email: "jean@example.com", paymentMethod: "OM_CI", otp: "1234", // requis pour OM_CI });

Méthodes de paiement

paymentMethod.get()

Récupère les méthodes de paiement configurées.

const response = await duticotac.paymentMethod.get();

paymentMethod.set()

Configure les méthodes de paiement disponibles.

await duticotac.paymentMethod.set({ providers: ["OM_CI", "MTN_CI", "WAVE_CI"], });

Transactions

transaction.get()

Récupère les détails d’une transaction.

const response = await duticotac.transaction.get({ id: "transaction_id", });

transaction.poll()

Suit le statut d’une transaction avec polling et backoff exponentiel (1s → 2s → 3s → 5s → 8s). Idéal pour les paiements asynchrones (confirmation sur téléphone, redirection Wave).

const controller = new AbortController(); try { const response = await duticotac.transaction.poll("transaction_id", { intervalMs: 2000, timeoutMs: 90_000, signal: controller.signal, onPoll: (attempt, elapsed) => { console.log(`Tentative ${attempt} (${elapsed}ms)`); }, }); console.log("Transaction confirmée:", response.data); } catch (e) { if (e instanceof DuticotacError) { // e.code: "polling-timeout" | "payment-cancelled" | "payment-failed" } }

Webhooks

webhook.get()

Récupère l’URL du webhook.

const response = await duticotac.webhook.get();

webhook.set()

Configure l’URL du webhook.

await duticotac.webhook.set({ url: "https://example.com/webhook", });

Gestion des erreurs

Le SDK lève des DuticotacError avec un code et un message en français :

import { DuticotacError } from "@applite/duticotac"; try { await duticotac.mobileMoney.cashout({ ... }); } catch (e) { if (e instanceof DuticotacError) { console.log(e.code); // "otp-required" console.log(e.message); // "Code OTP requis pour les paiements Orange Money" } }

Codes d’erreur

CodeMessage
otp-requiredCode OTP requis pour les paiements Orange Money
ref-or-idFromClient-requiredRéférence ou IDFromClient requis
payment-failedÉchec du paiement
payment-cancelledPaiement annulé
polling-timeoutTemps d’attente de la transaction expiré
no-api-keyClé API non fournie
app-not-foundApplication non trouvée dans AppLite UI
unknown-errorUne erreur inconnue est survenue

Utilitaires

import { getProviderName, // "OM_CI" → "Orange Money" getProviderLogo, // "OM_CI" → URL du logo getErrorMessage, // "otp-required" → message français } from "@applite/duticotac";

Types

import type { TransactionStatus, // "PENDING" | "CONFIRMED" | "CANCELLED" | "FAILED" PlatformType, // "STORE" | "TRANSPORT" | "RESTAURATION" | ... PaymentProvider, // "OM_CI" | "MTN_CI" | "MOOV_CI" | "WAVE_CI" | ... Currency, // "USD" | "EUR" | "XOF" | "XAF" CoreApp, // "XORAIA" | "MONSMSPRO" | "FREE" TransactionModel, OfferModel, } from "@applite/duticotac";
Last updated on