Bring your own providers and plug Kwital into your stack
Connect the WhatsApp, SMS, and email providers you already use, turn Android phones into SMS gateways, authenticate your sending domains, and send messages from your own software with the Kwital API.
- Node WhatsApp Connected · Front desk number
- WhatsApp Cloud API Connected · Aarav Organics
- Android SMS gateway Connected · Showroom phone, 2 SIMs
- MSG91 Active · Default SMS gateway
- Amazon SES Active · orders@aaravorganics.in
Tap a switch to connect a sample gateway
See what each provider asks for
Pick a channel and a provider to see the details you enter in your member panel. Plans with your own gateways set how many of each provider you can add.
Channel
Provider
Also built in for SMS
- Session / device name
- Front desk
Save the device, then scan its QR code with WhatsApp on the phone that runs the number. You can reconnect it from the panel later.
- Business API name
- Aarav Organics
- User access token
- EAAG••••••••••••
- Phone number ID
- 1098••••••••
- WhatsApp Business account ID
- 2231••••••••
Prefer not to copy credentials? Connect through Meta’s Embedded Signup instead. Each account gets a callback URL and verify token for its webhook, and can sync its approved templates.
- Session name
- Showroom phone, MI Road
Download the Kwital Android app from your panel, then scan the session’s QR code from the phone. The phone reports its SIM cards, and you choose which ones send, each with its own delay, pause, and reset settings.
- Gateway name
- MSG91 transactional
- API URL
- https://control.msg91.com/…
- Auth key
- 3871••••••••
- Flow ID
- 64f1••••••••
- Sender ID
- AARAVO
Mark it as your default SMS gateway if you want it used automatically.
- Gateway name
- Twilio
- Account SID
- AC72••••••••
- Auth token
- ••••••••••••
- From number
- +1 415 •••••••
- Sender ID
- AARAVO
Mark it as your default SMS gateway if you want it used automatically.
- Gateway name
- Infobip
- Infobip base URL
- https://••••.api.infobip.com
- Infobip API key
- 9d1c••••••••
- Sender ID
- AARAVO
Mark it as your default SMS gateway if you want it used automatically.
- Gateway name
- Vonage
- API key
- a81f••••
- API secret
- ••••••••••••
- Sender ID
- AARAVO
Mark it as your default SMS gateway if you want it used automatically.
- API URL and method
- POST https://api.yourprovider.in/send
- Authorization type
- API key or bearer token
- Headers and query parameters
- Add as many as your provider needs
- Body type
- form-data, x-www-form-urlencoded, or raw JSON
- Message placeholders
- {{recipient}} and {{message}}
- Response status
- HTTP status code or a response body key
Describe any HTTP SMS API your provider offers, and tell Kwital how to recognise a failed request.
- Gateway email address
- orders@aaravorganics.in
- Host
- smtp.yourhost.in
- Port
- 587
- Encryption
- Standard encryption (TLS)
- Username
- orders@aaravorganics.in
- Password
- ••••••••••
Choose TLS, SSL, STARTTLS, or no encryption, then send a test email before your first campaign.
- Gateway email address
- orders@aaravorganics.in
- API secret key
- SG.••••••••••••
Send a test email from the gateway list before your first campaign.
- Gateway email address
- orders@aaravorganics.in
- SES profile
- default
- SES version
- latest
- SES region
- ap-south-1
- SES sender email
- orders@aaravorganics.in
Send a test email from the gateway list before your first campaign.
- Gateway email address
- orders@aaravorganics.in
- API secret key
- key-••••••••••
- Verified domain
- mg.aaravorganics.in
Send a test email from the gateway list before your first campaign.
- Gateway email address
- orders@aaravorganics.in
- API secret key
- ••••••••••••
- API public key
- 4f7a••••••••
Send a test email from the gateway list before your first campaign.
Send through one gateway, or spread the load
Mark one gateway as your default. When you send, choose Automatic to use it, Random rotation to spread messages across all your active gateways, or pick a gateway yourself.
- Works for SMS API gateways, Android SIMs, email gateways, and WhatsApp
- Each gateway keeps its own sending pace
- Turn a gateway off without deleting it
- MSG91Default 0
- TwilioActive 0
- InfobipActive 0
Automatic sends everything through your default gateway.
Sending and tracking domains for better inbox placement
Add the domain you send email from and Kwital generates its DKIM keys along with the SPF and DMARC records to publish. Add a tracking subdomain such as track.yourbrand.in so open and click tracking links carry your own brand.
- Standard and split record formats for DNS providers with a 255-character limit
- Verify DNS records from the panel and regenerate DKIM keys when needed
- Tracking domains are verified with a single CNAME record
-
DKIMTXT · Email signing Pendingkwital._domainkey.jaipurhomes.in
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kq9Tn2vR8bW4mZ7cYfL0pH5sJ1dE6uK…QIDAQAB"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kq9Tn2vR8bW4mZ…" "…7cYfL0pH5sJ1dE6uKQIDAQAB" -
SPFTXT · Sender authorisation Pendingjaipurhomes.in
v=spf1 include:_spf.jaipurhomes.in ~all -
DMARCTXT · Delivery policy Recommended_dmarc.jaipurhomes.in
v=DMARC1; p=none; rua=mailto:dmarc@jaipurhomes.in -
Tracking domainCNAME · Branded open and click links Pendingtrack.jaipurhomes.in
kwital.com
Sample records. Your panel shows the exact values for your domain.
Send from your own website, CRM, or billing software
Every member can generate an API key and send SMS, email, and WhatsApp messages over HTTP, then look up each message’s delivery status.
- Generate an API keyCreate it on the API key page in your member panel. A new key replaces the old one.
- Authenticate requestsPass the key in the
Api-keyheader, or as anapi_keyparameter. - Send and checkPOST to the send endpoint for a channel, then fetch any message by its ID to see its status.
- POST
/api/whatsapp/send - POST
/api/sms/send - POST
/api/email/send - GET
/api/get/{channel}/{id}
POSThttps://kwital.com/api/whatsapp/send
curl -X POST "https://kwital.com/api/whatsapp/send" \
-H "Api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contact": [
{
"number": "919829012345",
"message": "Hi Priya, your order #4821 is out for delivery."
}
]
}'
$payload = [
'contact' => [
[
'number' => '919829012345',
'message' => 'Hi Priya, your order #4821 is out for delivery.',
],
],
];
$curl = curl_init('https://kwital.com/api/whatsapp/send');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
'Api-key: YOUR_API_KEY',
'Content-Type: application/json',
],
]);
$response = json_decode(curl_exec($curl), true);
curl_close($curl);
// Run this on your server (Node.js 18+) so your API key stays private.
const response = await fetch('https://kwital.com/api/whatsapp/send', {
method: 'POST',
headers: {
'Api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
contact: [
{ number: '919829012345', message: 'Hi Priya, your order #4821 is out for delivery.' },
],
}),
});
const result = await response.json();
200Sample response
{
"success": true,
"message": "WhatsApp dispatch request created successfully",
"data": [
{
"id": 48213,
"created_at": "2026-09-28 10:42:05",
"status": "pending",
"message": {
"message": "Hi Priya, your order #4821 is out for delivery.",
"file_info": null
},
"contact": {
"first_name": null,
"last_name": null,
"whatsapp_contact": "919829012345",
"meta_data": null
}
}
]
}
Check it later with GET https://kwital.com/api/get/whatsapp/48213
Every way to connect a channel
Depending on your plan, you either send through gateways managed by Kwital or add your own. Plans with your own gateways set how many of each provider you can add.
- Node deviceLink a number by scanning a QR code; reconnect from the panel.
- Official Cloud APIMeta Embedded Signup or manual credentials, webhook setup, template sync.
SMS
- Android gatewayThe Kwital Android app on your own phones, paired by QR code, with per-SIM sending settings.
- API gatewayA built-in provider with your credentials, or any HTTP SMS API through the custom option.
- Email gatewaySMTP or a sending service, with a test email before you go live.
- DomainsSending domains with DKIM, SPF, and DMARC; tracking domains by CNAME.
Connected in four steps
Most gateways take a few minutes. DNS records can take a little longer to propagate.
- Pick your plan
See whether it sends through Kwital’s gateways or your own, and how many of each you can add.
- Connect your channels
Scan a QR code for WhatsApp or the Android app, or enter your provider’s credentials.
- Set a default and a pace
Mark a default gateway and tune the delay between messages.
- Authenticate your domain
Publish the DKIM, SPF, and DMARC records, verify them, and add a tracking subdomain.
Can I use more than one gateway at a time?
Yes. Add as many gateways as your plan allows and mark one as the default. When you send, choose Automatic to use the default, Random rotation to spread messages across your active gateways, or pick a specific one.
Do I need the official WhatsApp Cloud API?
No. You can link a number as a Node device by scanning a QR code, or connect a WhatsApp Business account on the Cloud API through Meta’s Embedded Signup or by entering its credentials. You can use both.
Which SMS providers can I connect?
Built-in options include MSG91, Twilio, Infobip, Vonage (Nexmo), MessageBird, Textmagic, Clickatell, SMS Broadcast, MiM SMS, and Ajura SMS. Any other HTTP SMS API works through the custom API option, and you can send from your own SIM cards with the Kwital Android app.
What if my DNS provider rejects the DKIM record?
Some DNS providers cannot accept values longer than 255 characters. Use the split format shown in your panel, which breaks the DKIM value into shorter quoted strings.
How do I authenticate API requests?
Generate a key on the API key page in your member panel, then send it in the Api-key header or as an api_key parameter. Generating a new key replaces the current one, so update any integrations that use it.
More from Kwital
Every module shares the same contacts, credits, and inbox, so they work better together.