UNPKG

netgsm-otp

Version:

Unofficial Node.js/TypeScript client for NetGSM OTP SMS service

105 lines (75 loc) 2.92 kB
# netgsm-otp Unofficial Node.js/TypeScript client for NetGSM OTP SMS service. This package provides a simple and type-safe way to send OTP (One-Time Password) SMS messages through NetGSM's API. ## Installation ```bash npm install netgsm-otp # or yarn add netgsm-otp # or pnpm add netgsm-otp ``` ## Usage ```typescript import { NetGsmOtp } from 'netgsm-otp'; // Initialize the client with your NetGSM credentials const netgsm = new NetGsmOtp({ usercode: 'YOUR_USERCODE', password: 'YOUR_PASSWORD', msgheader: 'YOUR_MESSAGE_HEADER', // Usually your originator/sender ID appkey: 'YOUR_APP_KEY' }); // Send an OTP message async function sendOtpExample() { const result = await netgsm.sendOtp({ phoneNumber: '5XXXXXXXXX', // Recipient phone number (Turkish mobile number) message: 'Your verification code is: {code}', // Message template code: '123456' // The OTP code to insert into the message }); // Note: Phone numbers are automatically validated to ensure they are valid Turkish mobile numbers if (result.success) { console.log('OTP sent successfully!'); console.log('Message ID:', result.code); } else { console.error('Failed to send OTP:', result.message); } } sendOtpExample(); ``` ## API Reference ### `NetGsmOtp` The main class for interacting with NetGSM's OTP SMS service. #### Constructor ```typescript constructor(options: NetGsmOtpOptions) ``` - `options`: Configuration object with the following properties: - `usercode`: Your NetGSM username/usercode - `password`: Your NetGSM password - `msgheader`: Your message header/originator (sender ID) - `appkey`: Your application key #### Methods ##### `sendOtp(options: SendOtpOptions): Promise<{ success: boolean; message: string; code?: string }>` Sends an OTP SMS message. - `options`: Object with the following properties: - `phoneNumber`: Recipient's phone number (must be a valid Turkish mobile number) - `message`: Message template (use `{code}` placeholder for the OTP code) - `code`: (Optional) The OTP code to insert into the message > **Note:** Phone numbers are automatically validated. Valid formats include: > - 10 digits starting with '5' (e.g., '5XXXXXXXXX') > - 12 digits starting with '90' followed by '5' (e.g., '905XXXXXXXXX') > - Non-digit characters are automatically removed (e.g., '+90 5XX XXX XX XX' is valid) Returns a Promise that resolves to an object with: - `success`: Boolean indicating if the operation was successful - `message`: Status message - `code`: (Only when successful) The message ID returned by NetGSM ## Response Codes The package handles the following NetGSM response codes: - `00`: Success - `20`: Authentication error - `30`: Parameter error - `40`: Balance error - `70`: System error ## License ISC ## Disclaimer This is an unofficial package and is not affiliated with, maintained, authorized, endorsed, or sponsored by NetGSM.