{"_id":"@achek/sdk","name":"@achek/sdk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@achek/sdk","version":"1.0.0","description":"Official Node.js/TypeScript SDK for Achek Connect — WhatsApp OTP, alerts, broadcasts, and ticket tracking for Nigerian developers","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --clean","dev":"tsup src/index.ts --format esm,cjs --dts --watch","prepublishOnly":"npm run build"},"keywords":["whatsapp","otp","verification","nigeria","sms-alternative","@achek/sdk","achekOTP","whatsapp-api","alerts","chatbot"],"author":{"name":"Achek","email":"hello@achek.com.ng"},"license":"MIT","homepage":"https://verify.achek.com.ng","repository":{"type":"git","url":"git+https://github.com/achek/sdk-node.git"},"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3"},"gitHead":"2a5460bd17e1a5655f0badef96cbac98c18d57f4","_id":"@achek/sdk@1.0.0","bugs":{"url":"https://github.com/achek/sdk-node/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-F6Lflotn94Sh5sGTPUSFzxRPxkVajbtxIh7UFjnPH7ogXojVs/EPH923HfMsedjZbNTpRCi/LTAVS6qLMIfJWw==","shasum":"150da6b1bf1847c62c126dcbf7141d68326ddc54","tarball":"https://registry.npmjs.org/@achek/sdk/-/sdk-1.0.0.tgz","fileCount":8,"unpackedSize":48363,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDFZd/j7wuBXSLM+flfyEDCuqjwT5WoTBXEuWZNCAaIsAIgXRSYKnUOxxIVm6K3/DmZuLy1slOtL40MsgRyaI6vaIk="}]},"_npmUser":{"name":"calebosky","email":"Calebonuche503@gmail.com"},"directories":{},"maintainers":[{"name":"calebosky","email":"Calebonuche503@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_1.0.0_1779345183526_0.06363717642971034"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T06:33:03.339Z","1.0.0":"2026-05-21T06:33:03.708Z","modified":"2026-05-21T06:33:03.954Z"},"maintainers":[{"name":"calebosky","email":"Calebonuche503@gmail.com"}],"description":"Official Node.js/TypeScript SDK for Achek Connect — WhatsApp OTP, alerts, broadcasts, and ticket tracking for Nigerian developers","homepage":"https://verify.achek.com.ng","keywords":["whatsapp","otp","verification","nigeria","sms-alternative","@achek/sdk","achekOTP","whatsapp-api","alerts","chatbot"],"repository":{"type":"git","url":"git+https://github.com/achek/sdk-node.git"},"author":{"name":"Achek","email":"hello@achek.com.ng"},"bugs":{"url":"https://github.com/achek/sdk-node/issues"},"license":"MIT","readme":"# achekconnect — Node.js SDK\n\nOfficial TypeScript/JavaScript SDK for [Achek Connect](https://verify.achek.com.ng) — WhatsApp OTP verification, automated alerts, transaction notifications, and ticket tracking for Nigerian developers.\n\n## Install\n\n```bash\nnpm install achekconnect\n# or\nyarn add achekconnect\n# or\npnpm add achekconnect\n```\n\n## Quick Start\n\n```typescript\nimport AchekConnect from \"achekconnect\";\n\nconst client = new AchekConnect({ apiKey: \"watp_live_xxxxxxxxxxxx\" });\n\n// 1. Send OTP\nconst { requestId } = await client.otp.send(\"+2348012345678\");\n\n// 2. Verify OTP\nconst { valid } = await client.otp.verify(requestId, userEnteredCode);\n\nif (valid) {\n  // User is verified ✅\n}\n```\n\n## OTP Verification\n\n```typescript\n// Simple send\nconst { requestId } = await client.otp.send(\"+2348012345678\");\n\n// With custom template (Growth+ plans)\nconst { requestId } = await client.otp.send({\n  phoneNumber: \"+2348012345678\",\n  template: \"Hi {{name}}, your {{company}} OTP is {{code}}. Valid 10 mins.\",\n  recipientName: \"Emeka\",\n  companyName: \"MyApp\",\n});\n\n// Verify\nconst result = await client.otp.verify(requestId, \"847293\");\n// { valid: true, message: \"OTP verified successfully\" }\n\n// View logs\nconst logs = await client.otp.logs({ limit: 20, status: \"verified\" });\n```\n\n## Transaction Alerts\n\nSend formatted debit/credit/transfer alerts via WhatsApp:\n\n```typescript\nawait client.alerts.transaction({\n  phoneNumber: \"+2348012345678\",\n  type: \"debit\",\n  amount: 15000,\n  currency: \"NGN\",\n  accountName: \"Emeka Okafor\",\n  reference: \"TXN-20240519-001\",\n  balance: 240000,\n  description: \"Transfer to Kuda\",\n});\n\n// Sends this WhatsApp message:\n// 💸 Debit Alert\n// Amount: ₦15,000.00\n// Account: Emeka Okafor\n// Ref: `TXN-20240519-001`\n// Narration: Transfer to Kuda\n// Balance: ₦240,000.00\n// _Powered by Achek Connect_\n```\n\n## Custom Alerts\n\n```typescript\nawait client.alerts.send({\n  phoneNumber: \"+2348012345678\",\n  message: \"*Important:* Your loan application has been approved! 🎉\\nCheck your account for details.\",\n  category: \"notification\",\n});\n```\n\n## Ticket Tracking\n\nCreate support tickets and keep customers updated via WhatsApp:\n\n```typescript\n// Create a ticket\nconst ticket = await client.tickets.create({\n  phoneNumber: \"+2348012345678\",\n  subject: \"Payment not reflecting\",\n  description: \"Customer paid ₦5,000 but order not updated\",\n  priority: \"high\",\n  notifyCustomer: true,\n  notificationMessage: \"Hi! We received your complaint and our team is on it. Ticket ID: {{ticketId}}\",\n});\n\n// ticket.ticketId = \"TKT-20240519-A3F2\"\n\n// Update status\nawait client.tickets.update(ticket.ticketId, {\n  status: \"in_progress\",\n  notifyCustomer: true,\n  notificationMessage: \"Update: Your issue is being investigated. We'll resolve within 2 hours.\",\n});\n\n// Resolve\nawait client.tickets.resolve(ticket.ticketId, \"Your issue has been fixed! Please check your account.\");\n```\n\n## Broadcasts\n\n```typescript\nawait client.broadcasts.send({\n  name: \"Promo — Black Friday\",\n  message: \"🔥 *50% OFF* all subscriptions today only!\\nUse code: *FRIDAY50*\\nhttps://yourapp.com/upgrade\",\n  recipients: [\"+2348012345678\", \"+2348087654321\"], // up to 1000\n});\n```\n\n## Error Handling\n\n```typescript\nimport AchekConnect, { AchekConnectError } from \"achekconnect\";\n\ntry {\n  await client.otp.send(\"+2348012345678\");\n} catch (err) {\n  if (err instanceof AchekConnectError) {\n    console.error(err.message);     // \"No active subscription...\"\n    console.error(err.statusCode);  // 402\n    console.error(err.code);        // \"PHONE_NOT_VERIFIED\" etc.\n  }\n}\n```\n\n## CommonJS\n\n```javascript\nconst { AchekConnect } = require(\"achekconnect\");\nconst client = new AchekConnect({ apiKey: \"watp_live_xxx\" });\n```\n","readmeFilename":"README.md","_rev":"1-2009de052f20811552c3d6e683ffd7b0"}