sandbox-gateway-sdk
v1.0.0
Published
Node.js SDK for Sandbox Gateway - Multi-channel messaging platform (SMS, Email, WhatsApp, RCS)
Downloads
111
Maintainers
Readme
Sandbox Gateway SDK
Node.js SDK for integrating Sandbox Gateway into your application.
Installation
npm install sandbox-gateway-sdkQuick Start
const SandboxGateway = require('sandbox-gateway-sdk');
const gateway = new SandboxGateway('http://localhost:3000');
// Send SMS
const response = await gateway.sendSMS('twilio', {
to: '+1234567890',
body: 'Hello World',
from: '+1111111111'
});
console.log(response.data);
// { sid: '...', status: 'queued', to: '+1234567890', ... }SMS
Single Message
const response = await gateway.sendSMS('twilio', {
to: '+1234567890',
body: 'Your message',
from: '+1111111111'
});Bulk Messages
const responses = await gateway.sendSMSBulk('twilio', [
{ to: '+1111111111', body: 'Message 1', from: '+1000000000' },
{ to: '+2222222222', body: 'Message 2', from: '+1000000000' }
]);Supported Vendors
twilio- Twilio SMSvonage- Vonage SMS
Single Message
const response = await gateway.sendEmail('sendgrid', {
to: '[email protected]',
subject: 'Subject',
html: '<h1>Hello</h1>',
from: '[email protected]'
});Bulk Messages
const responses = await gateway.sendEmailBulk('sendgrid', [
{ to: '[email protected]', subject: 'Subject 1', html: '<p>Content 1</p>', from: '[email protected]' },
{ to: '[email protected]', subject: 'Subject 2', html: '<p>Content 2</p>', from: '[email protected]' }
]);Supported Vendors
sendgrid- SendGrid Emailmailgun- Mailgun Email
Single Message
const response = await gateway.sendWhatsApp('twilio', {
to: '+1234567890',
body: 'Your message',
from: '+1111111111'
});Bulk Messages
const responses = await gateway.sendWhatsAppBulk('twilio', [
{ to: '+1111111111', body: 'Message 1', from: '+1000000000' },
{ to: '+2222222222', body: 'Message 2', from: '+1000000000' }
]);Supported Vendors
twilio- Twilio WhatsAppmessagebird- MessageBird WhatsApp
RCS
Single Message
const response = await gateway.sendRCS('google', {
to: '+1234567890',
body: 'Your message',
richCard: { title: 'Optional' }
});Bulk Messages
const responses = await gateway.sendRCSBulk('google', [
{ to: '+1111111111', body: 'Message 1' },
{ to: '+2222222222', body: 'Message 2' }
]);Supported Vendors
google- Google RCStelstra- Telstra RCS
Dashboard
Get Messages
const messages = await gateway.getMessages({
channel: 'sms',
vendor: 'twilio',
status: 'delivered',
limit: 10,
skip: 0
});
console.log(messages.data);Get Statistics
const stats = await gateway.getStats({
channel: 'sms',
vendor: 'twilio'
});
console.log(stats.data);
// { total: 100, byChannel: {...}, byStatus: {...} }Response Format
All methods return axios response objects. Access data with .data:
const response = await gateway.sendSMS('twilio', {...});
console.log(response.data); // Actual response
console.log(response.status); // HTTP status codeError Handling
try {
const response = await gateway.sendSMS('twilio', {...});
console.log(response.data);
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}Configuration
// Custom base URL
const gateway = new SandboxGateway('https://api.example.com');
// Custom timeout
const gateway = new SandboxGateway('http://localhost:3000');
gateway.client.defaults.timeout = 5000;License
MIT
