sohan soft techWHATSAPP MANAGER
Sign inGet started
SOHAN SOFT TECH / DEVELOPERS

Your integration.
Your business credentials.

Use a scoped Sohan Soft Tech API key to call your business workspace. Meta credentials stay encrypted on the server.

Download OpenAPI 3.1Manage API keys
Messaging requires your active API-enabled plan, configured PostgreSQL and Meta services, recorded consent, and a registered business number. Customer webhook delivery and media APIs are not available in this release.

Authenticate with your Sohan API key

Create a key in Workspace → API & developers. Choose scopes and expiry. Copy it once and store it in your server’s secret manager.

Authorization: Bearer sst_YOUR_API_KEY
Content-Type: application/json

The key determines your tenant. Do not send another workspace’s x-tenant-id. Wallet recharge, Meta account connection and platform administration require OTP session authentication.

Send an approved template

curl https://wab.sohansoft.in/api/messages \
  -H 'Authorization: Bearer sst_YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"contactId":"YOUR_CONTACT_ID","phoneId":"YOUR_PHONE_RECORD_ID","templateId":"YOUR_APPROVED_TEMPLATE_ID","idempotencyKey":"YOUR_UNIQUE_REQUEST_ID"}'

The response identifies the queued message. Delivery and read state are updated from verified Meta webhooks; enqueueing does not mean delivery.

Supported bearer operations

MethodPathScope
GET/api/contactscontacts.read
POST/api/contactscontacts.manage
PATCH/api/contacts/{id}contacts.manage
DELETE/api/contacts/{id}contacts.manage
POST/api/contacts/{id}/consentcontacts.manage
GET/api/contacts/exportcontacts.read
GET/api/numbersnumbers.read
GET/api/templatestemplates.read
POST/api/templatestemplates.manage
GET/api/messagesmessages.read
POST/api/messagesmessages.send
GET/api/conversationsconversations.read
GET/api/campaignscampaigns.read
POST/api/campaignscampaigns.manage
GET/api/billingbilling.read
GET/api/usageusage.read
GET/api/subscriptionsbilling.read
POST/api/templates/synctemplates.manage
PATCH/api/conversations/{id}conversations.manage
POST/api/conversations/{id}/notesconversations.manage
POST/api/campaigns/{id}/startcampaigns.manage
POST/api/campaigns/{id}/pausecampaigns.manage
POST/api/campaigns/{id}/resumecampaigns.manage
POST/api/campaigns/{id}/cancelcampaigns.manage

Rotate without exposing old secrets

Create a replacement with an overlap of 0–24 hours. Deploy the new key to your integration, then revoke the old key. Expired, revoked or out-of-scope keys are rejected; old plaintext keys cannot be retrieved.

Errors and retrying

Errors use an error.code and error.message object. A 429 means rate limiting; wait before retrying. Reuse the same message idempotency key for retries. An UNKNOWN provider outcome requires reconciliation and must not be blindly resent.