FAQ

Frequently Asked Questions

Find answers to common questions about Sendora's WhatsApp messaging platform. Learn about features, pricing, technical requirements, and how to get started with enterprise-grade WhatsApp messaging.

Sendora is an enterprise WhatsApp messaging platform built on .NET 9.0 that enables businesses to send and receive WhatsApp messages programmatically. It works by connecting to WhatsApp through our secure messaging infrastructure, allowing you to manage multiple WhatsApp sessions, send automated messages, receive real-time notifications through webhooks, and integrate WhatsApp messaging into your applications via our REST API. The platform includes OAuth 2.0 authentication, Redis-powered caching for optimal performance, and supports both web and mobile interfaces through our MAUI application.

Creating a WhatsApp session is simple: First, log into your Sendora dashboard and navigate to the Sessions page. Click "Create New Session" and provide a unique name for your session. The system will generate a QR code that you scan with your WhatsApp mobile app to authenticate. Once authenticated, your session becomes active and ready to send/receive messages. You can manage multiple sessions simultaneously, each operating independently with its own webhook configuration, message queue, and authentication. Sessions can be monitored in real-time through the dashboard, which shows status, message counts, and health metrics. You can also manage sessions programmatically through our REST API.

Sendora requires .NET 9.0 SDK or later, Node.js v18 or v20 for client-side packages, and Redis for caching and session management. For database, it supports SQL Server, PostgreSQL, MySQL, or SQLite through Entity Framework Core. The platform can run on Windows, Linux, or macOS. Minimum hardware recommendations are 2 CPU cores, 4GB RAM, and 20GB storage for small deployments. For production environments, we recommend 4+ CPU cores, 8GB+ RAM, and SSD storage. Docker and Kubernetes deployment options are available with pre-configured compose files. The mobile MAUI app requires iOS 14+ or Android 6.0+ (API 23).

Sendora uses OAuth 2.0 with OpenIddict for secure API authentication. To access the API, you first obtain an access token by sending your client credentials (client ID and secret) to the token endpoint. The server responds with a JWT access token and refresh token. Include the access token in the Authorization header (Bearer token) for all API requests. Access tokens expire after a configurable period (default 1 hour), but you can obtain a new token using your refresh token without re-authenticating. The platform supports multiple OAuth 2.0 flows including client credentials, authorization code, and resource owner password credentials. API endpoints are protected with role-based access control (RBAC), ensuring users only access resources they're authorized for.

Yes! Sendora fully supports sending and receiving media files through WhatsApp. You can send images (JPEG, PNG, GIF, WebP), videos (MP4, 3GP, AVI), documents (PDF, DOC, XLS, PPT, TXT), and audio files (MP3, OGG, WAV). Maximum file size is 16MB for images, 64MB for videos, and 100MB for documents. Media files can be sent by providing a URL to the file or by uploading the file directly through our API. When receiving media, Sendora provides download URLs that remain valid for 24 hours. For permanent storage, you can integrate with cloud storage services like Azure Blob Storage, AWS S3, or Google Cloud Storage. The API includes endpoints for retrieving media metadata, downloading files, and managing media attachments.

Webhooks allow your application to receive real-time notifications when events occur in Sendora. To configure webhooks, navigate to the session settings and provide your webhook URL. Sendora will send HTTP POST requests to your endpoint whenever events occur, such as incoming messages, message status updates (sent, delivered, read), session status changes, or connection events. Each webhook payload includes event type, timestamp, session information, and event-specific data in JSON format. Your endpoint should return a 200 status code to acknowledge receipt. For security, webhook requests include a signature header that you can verify to ensure authenticity. Failed webhook deliveries are automatically retried with exponential backoff. You can configure which event types trigger webhooks and set custom headers for authentication.