{"_id":"@applite/duticotac","_rev":"6-277ce544d0947faf92824738946d57e4","name":"@applite/duticotac","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"@applite/duticotac","version":"0.0.1","_id":"@applite/duticotac@0.0.1","maintainers":[{"name":"freddydrodev","email":"frediustcdev@gmail.com"}],"dist":{"shasum":"9d3b39e9b9fe1d99fb75916dc86a88e9255a220e","tarball":"https://registry.npmjs.org/@applite/duticotac/-/duticotac-0.0.1.tgz","fileCount":8,"integrity":"sha512-Bptk6v/ZI6daaK1z77UZqPxGJfC3eKXinwECYp+idUS53p0s+aBFcCAk4wnkNbVe8HWd9k1Lk2D2IMnriY3T2A==","signatures":[{"sig":"MEQCIDE+ITHn6s51DeUD0hFRCS2dUTW5inrSRuj4zCkiW0n4AiAT/ydvNCk85/9V4d0Oogj+zx35pJDOBNx7Q2lX7e9ZJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86296},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a26a8fd374e8660df136284e109348ba72e773c6","scripts":{"dev":"tsup --watch","test":"tsup --dts","build":"tsup"},"_npmUser":{"name":"freddydrodev","email":"frediustcdev@gmail.com"},"_npmVersion":"11.6.2","description":"A lightweight JavaScript SDK for interacting with Duticotac platform APIs.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.8.3","@types/node":"^24.1.0","@applite/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/duticotac_0.0.1_1775321262500_0.10174204153966238","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@applite/duticotac","version":"0.0.3","_id":"@applite/duticotac@0.0.3","maintainers":[{"name":"freddydrodev","email":"frediustcdev@gmail.com"}],"dist":{"shasum":"c5a697fc098ff2e69509b123e08fb4a5cf7e9c0a","tarball":"https://registry.npmjs.org/@applite/duticotac/-/duticotac-0.0.3.tgz","fileCount":8,"integrity":"sha512-EForMaMZ8nbFVaKq3OUN4R7jShqKfYcRIJIHXrQvr8Jdhvf4qwvWuApIpFmdCUhdJjbyqHmlwcdfxCu9hzCNvg==","signatures":[{"sig":"MEUCIAuvVMYk7eZXp8AMjIWTtVIf3gwGfRiY6yA/IMHJ0LxpAiEA71RJ4Hsi9/iwPYTzZJGDlR6UqKaiBljZXjzJMtmQasg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87711},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"46d6b1850124c4e5f436fb0fe11978b9584b7b10","scripts":{"dev":"tsup --watch","test":"tsup --dts","build":"tsup"},"_npmUser":{"name":"freddydrodev","email":"frediustcdev@gmail.com"},"_npmVersion":"11.6.2","description":"SDK JavaScript/TypeScript pour intégrer les paiements Duticotac (mobile money, offres, transactions).","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.8.3","@types/node":"^24.1.0","@applite/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/duticotac_0.0.3_1775331001682_0.5901581494133088","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@applite/duticotac","version":"0.0.4","_id":"@applite/duticotac@0.0.4","maintainers":[{"name":"freddydrodev","email":"frediustcdev@gmail.com"}],"dist":{"shasum":"8268a29600aea230716b7e95bc73bd8e62c3a10a","tarball":"https://registry.npmjs.org/@applite/duticotac/-/duticotac-0.0.4.tgz","fileCount":8,"integrity":"sha512-Z6vjqNZefYc5UixE+dbNnk0NAa5sPM06QGj79Z2vwOiMXqs+2BcA5JwIbTLDfo2FAUZ1zn7rnJQKxVY3VDRKcQ==","signatures":[{"sig":"MEUCIQCS0NiMb8odHySfBu57gJnjX00vugi0yhfQDFzxo9s7cwIgAo4H02CDC+XMpIV3y5t5FzAVv61kIE2EQsFgbGeggWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87711},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e279910adfbb81cce320f4cb37a878066e38fc47","scripts":{"dev":"tsup --watch","test":"tsup --dts","build":"tsup"},"_npmUser":{"name":"freddydrodev","email":"frediustcdev@gmail.com"},"_npmVersion":"11.6.2","description":"SDK JavaScript/TypeScript pour intégrer les paiements Duticotac (mobile money, offres, transactions).","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.8.3","@types/node":"^24.1.0","@applite/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/duticotac_0.0.4_1775337942221_0.7661363813731747","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@applite/duticotac","version":"0.0.5","_id":"@applite/duticotac@0.0.5","maintainers":[{"name":"freddydrodev","email":"frediustcdev@gmail.com"}],"dist":{"shasum":"f73507cb43021ae70b4482e242cc3f13ab904b54","tarball":"https://registry.npmjs.org/@applite/duticotac/-/duticotac-0.0.5.tgz","fileCount":8,"integrity":"sha512-XpQrtnGJKb3hhQ+n3Op679duvmaJSqScmHudzK9ZsKLG+dGoBE6lgGiCpSTzPV4nImDP5R98+lSgnG1Dwb43YA==","signatures":[{"sig":"MEYCIQCOwmO/CVZUz8bwSgZXQfN4SxzFLx4kd+fUexuODZCJVgIhAM4el4AScjjROtVm65B1rlJWEnLQ2mNJMIZs/hYib9AL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87582},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"89fd8490c45a0c3a400b81a08cc9a9e8c752792a","scripts":{"dev":"tsup --watch","test":"tsup --dts","build":"tsup"},"_npmUser":{"name":"freddydrodev","email":"frediustcdev@gmail.com"},"_npmVersion":"11.6.2","description":"SDK JavaScript/TypeScript pour intégrer les paiements Duticotac (mobile money, offres, transactions).","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.8.3","@types/node":"^24.1.0","@applite/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/duticotac_0.0.5_1776255163354_0.06272454366548508","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@applite/duticotac","version":"0.0.6","_id":"@applite/duticotac@0.0.6","maintainers":[{"name":"freddydrodev","email":"frediustcdev@gmail.com"}],"dist":{"shasum":"8b1d18ad9f2727dd1c8731e9c174b25bc1249424","tarball":"https://registry.npmjs.org/@applite/duticotac/-/duticotac-0.0.6.tgz","fileCount":8,"integrity":"sha512-XtkWCmh5G1bPEcbXWk0c4jDTfduprj3qCzxO5JEhWaPPZIqQYfKoTQHAKGXfcS4PCq8b/LcBvJWlNeQxkpjVYg==","signatures":[{"sig":"MEYCIQCXEkbToC55dZuyFB6qQvE8hzoJyD46zEpCgkCNJx00ZQIhALFpEBdKYOcvkP197GTwLNTDWMkDDn7J6MKErVEosZ1A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88180},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ee36c25fc98e603af7c41218fc3e656de6dc48c5","scripts":{"dev":"tsup --watch","test":"tsup --dts","build":"tsup"},"_npmUser":{"name":"freddydrodev","email":"frediustcdev@gmail.com"},"_npmVersion":"11.6.2","description":"SDK JavaScript/TypeScript pour intégrer les paiements Duticotac (mobile money, offres, transactions).","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.8.3","@types/node":"^24.1.0","@applite/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/duticotac_0.0.6_1776263192568_0.3117239995616006","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@applite/duticotac","version":"0.0.7","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"tsup --dts"},"devDependencies":{"@applite/typescript-config":"workspace:*","@types/node":"^24.1.0","tsup":"^8.5.1","typescript":"^5.8.3"},"publishConfig":{"access":"public"},"gitHead":"632b83e3feb8b4ccfd2d1b31832f3b2e28022b7b","_id":"@applite/duticotac@0.0.7","description":"SDK JavaScript/TypeScript pour intégrer les paiements Duticotac (mobile money, offres, transactions).","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-JVGZzze87ypx7w2aLTbBVgpwMJsedrDXjUaFMYJMANu0IaC3UYzQfORD2R3qNRs0wf45AhSK0HA1LMocik3wjg==","shasum":"54c5ac67d05b418675de43e9dc9ac9ba965d3731","tarball":"https://registry.npmjs.org/@applite/duticotac/-/duticotac-0.0.7.tgz","fileCount":8,"unpackedSize":88180,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD5/BJNpSE91igDoiqIqeCg3K9VoJNFahR/NK3LSuiukgIgdyXvwWPMuO3loZGSjHw93EwEQT0quYImaqbO1Z58MxM="}]},"_npmUser":{"name":"freddydrodev","email":"frediustcdev@gmail.com"},"directories":{},"maintainers":[{"name":"freddydrodev","email":"frediustcdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/duticotac_0.0.7_1776536948905_0.5849556269231562"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-04T16:47:42.383Z","modified":"2026-04-18T18:29:09.216Z","0.0.1":"2026-04-04T16:47:42.652Z","0.0.3":"2026-04-04T19:30:01.844Z","0.0.4":"2026-04-04T21:25:42.404Z","0.0.5":"2026-04-15T12:12:43.585Z","0.0.6":"2026-04-15T14:26:32.712Z","0.0.7":"2026-04-18T18:29:09.062Z"},"description":"SDK JavaScript/TypeScript pour intégrer les paiements Duticotac (mobile money, offres, transactions).","maintainers":[{"name":"freddydrodev","email":"frediustcdev@gmail.com"}],"readme":"# @applite/duticotac\n\nSDK JavaScript/TypeScript pour intégrer les paiements Duticotac (mobile money, offres, transactions).\n\n## Installation\n\n```bash\npnpm add @applite/duticotac\n```\n\n## Démarrage rapide\n\n```ts\nimport { DuticotacSDK } from \"@applite/duticotac\";\n\nconst duticotac = new DuticotacSDK({\n  apiKey: \"your_api_key\",\n  appId: \"your_app_id\", // optionnel\n});\n```\n\nLe SDK se connecte par défaut à `https://api.appliteui.com`. Vous pouvez passer un `baseUrl` personnalisé si nécessaire.\n\n## Modules\n\n### Balance\n\n```ts\nconst { data: balance } = await duticotac.balance.balance();\n```\n\n### Offres\n\n```ts\n// Créer une offre\nawait duticotac.offer.create({\n  name: \"Forfait Premium\",\n  ref: \"premium-monthly\",\n  price: 5000,\n  platform: \"DUTICOTAC\",\n  type: \"STATIC\",\n  description: \"Accès premium mensuel\",\n});\n\n// Lister les offres\nconst { data: offers } = await duticotac.offer.list();\n\n// Récupérer une offre\nconst { data: offer } = await duticotac.offer.get({ ref: \"premium-monthly\" });\n\n// Modifier une offre\nawait duticotac.offer.update({ ref: \"premium-monthly\", price: 7500 });\n\n// Supprimer une offre\nawait duticotac.offer.delete({ ref: \"premium-monthly\" });\n```\n\n### Paiements Mobile Money\n\n```ts\n// Encaissement (cash in)\nawait duticotac.mobileMoney.cashin({\n  amount: 5000,\n  phone: \"+2250700000000\",\n  paymentMethod: \"OM_CI\",\n  password: \"password123\",\n});\n\n// Décaissement (cash out)\nawait duticotac.mobileMoney.cashout({\n  transactionId: \"txn_123\",\n  ref: \"ref_123\",\n  phone: \"+2250700000000\",\n  name: \"Jean Dupont\",\n  email: \"jean@example.com\",\n  paymentMethod: \"OM_CI\",\n  otp: \"1234\", // requis pour Orange Money\n});\n```\n\n**Providers supportés :** `OM_CI` (Orange Money), `MTN_CI`, `MOOV_CI`, `WAVE_CI`, `CREDIT_CARD`, `CASH`, `IAP`\n\n### Transactions\n\n```ts\n// Récupérer le statut d'une transaction\nconst { data: tx } = await duticotac.transaction.get({ id: \"transaction_id\" });\n\n// Polling avec backoff exponentiel (idéal pour paiements asynchrones)\nconst { data: confirmed } = await duticotac.transaction.poll(\"transaction_id\", {\n  intervalMs: 2000, // intervalle minimum (défaut: 2s)\n  timeoutMs: 90_000, // timeout global (défaut: 90s)\n  onPoll: (attempt, elapsed) => {\n    console.log(`Tentative ${attempt} (${elapsed}ms)`);\n  },\n  signal: abortController.signal, // annulation externe\n});\n```\n\nLe polling utilise un backoff exponentiel (1s → 2s → 3s → 5s → 8s) et se termine quand la transaction passe en `CONFIRMED`, `CANCELLED` ou `FAILED`.\n\n### Méthodes de paiement\n\n```ts\n// Récupérer les méthodes configurées\nconst { data: methods } = await duticotac.paymentMethod.get();\n\n// Configurer les méthodes\nawait duticotac.paymentMethod.set({\n  providers: [\"OM_CI\", \"MTN_CI\", \"WAVE_CI\"],\n});\n```\n\n### Webhooks\n\n```ts\n// Récupérer l'URL du webhook\nconst { data: url } = await duticotac.webhook.get();\n\n// Configurer l'URL\nawait duticotac.webhook.set({ url: \"https://example.com/webhook\" });\n```\n\n## Types exportés\n\n```ts\nimport type {\n  // Enums\n  TransactionStatus, // \"PENDING\" | \"CONFIRMED\" | \"CANCELLED\" | \"FAILED\"\n  PlatformType, // \"STORE\" | \"TRANSPORT\" | \"RESTAURATION\" | ...\n  PaymentProvider, // \"OM_CI\" | \"MTN_CI\" | \"MOOV_CI\" | \"WAVE_CI\" | ...\n  Currency, // \"USD\" | \"EUR\" | \"XOF\" | \"XAF\"\n  CoreApp, // \"XORAIA\" | \"MONSMSPRO\" | \"FREE\"\n  DuTicOTacOfferType, // \"STATIC\" | \"DYNAMIC\"\n\n  // Modèles\n  TransactionModel,\n  OfferModel,\n  OfferAppModel,\n  DuticotacSettingModel,\n  PaymentLinksCountModel,\n} from \"@applite/duticotac\";\n```\n\n## Gestion des erreurs\n\nLe SDK lève des `DuticotacError` avec un `code` correspondant aux erreurs de l'API :\n\n```ts\nimport { DuticotacError } from \"@applite/duticotac\";\n\ntry {\n  await duticotac.mobileMoney.cashout({ ... });\n} catch (e) {\n  if (e instanceof DuticotacError) {\n    console.log(e.code);    // ex: \"otp-required\"\n    console.log(e.message); // ex: \"Code OTP requis pour les paiements Orange Money\"\n  }\n}\n```\n\n## Utilitaires\n\n```ts\nimport {\n  getProviderName, // \"OM_CI\" → \"Orange Money\"\n  getProviderLogo, // \"OM_CI\" → URL du logo\n  getErrorMessage, // \"otp-required\" → message en français\n  ERROR_MESSAGES, // map code → message\n} from \"@applite/duticotac\";\n```\n\n## Scripts\n\n- `pnpm build` – build CJS/ESM avec déclarations de types\n- `pnpm dev` – mode watch pour le développement\n","readmeFilename":"README.md"}