Developer documentation

Build on the Tech Pad API.

Send WhatsApp template messages from your own systems, receive delivery events by webhook and monitor every request in the logs.

Free WordPress plugins

Skip the code — install a connector plugin.

The same WhatsApp Business API, wrapped in free connector plugins for the tools you already use — every form, booking, event and store platform sends straight to your WhatsApp. Install, connect with your email, done.

Quick start

From zero to a delivered WhatsApp message in four steps. Everything here also works inside the app’s Developers → Overview page, which tracks your progress.

1

Create an API key

Open Developers → API keys in the app and create a key (prefix ttp_live_). The full secret is shown once — copy it immediately.

2

Pick an approved template

Your workspace needs at least one Meta-approved template (see Templates). Templates refresh directly from Meta.

3

Send a test request

Use the in-app API tester or the request below. The recipient must have opted in to receive template messages from your number.

4

Add a delivery webhook

Point a webhook at your HTTPS endpoint, select the events you care about, and watch Webhook logs confirm delivery.

Authentication

The API is authenticated with per-workspace API keys sent as a bearer token. Keys are created and revoked from Developers → API keys.

  • Keys start with ttp_live_ and are scoped to one workspace.
  • Create a separate key per integration — each key tracks its own last used timestamp.
  • The full secret is displayed only once at creation; it cannot be recovered later. Revoke and recreate instead.
  • Send the key in the Authorization header: Authorization: Bearer ttp_live_…
Never expose your API key in client-side code, mobile apps or public repositories. Keys are meant for your own servers and secure backends only.

Send a message

Sends an approved WhatsApp template message to one opted-in recipient from a connected number in your workspace.

POST https://v1.thetechpad.com/functions/v1/api-send

Header: Authorization: Bearer ttp_live_… · Content-Type: application/json

Request body

FieldTypeDescription
phoneNumberIdstringID of a connected WhatsApp number in your workspace (WhatsApp numbers page).
tostringRecipient phone number in E.164 format, e.g. 15551234567.
template.namestringName of a Meta-approved template in your workspace, e.g. order_update.
template.languagestringTemplate language code, e.g. en.
template.parametersarray<string>Positional values for the template’s variables, in order.

Example request

curl -X POST 'https://v1.thetechpad.com/functions/v1/api-send' \
  -H 'Authorization: Bearer ttp_live_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "phoneNumberId": "1122334455",
  "to": "15551234567",
  "template": {
    "name": "order_update",
    "language": "en",
    "parameters": ["Ava", "#4031"]
  }
}'
// JavaScript
const response = await fetch('https://v1.thetechpad.com/functions/v1/api-send', {
  method: 'POST',
  headers: { Authorization: 'Bearer ttp_live_...', 'Content-Type': 'application/json' },
  body: JSON.stringify({
    phoneNumberId: '1122334455',
    to: '15551234567',
    template: { name: 'order_update', language: 'en', parameters: ['Ava', '#4031'] }
  })
});
Template rules apply. The message must use an approved template and the recipient must be eligible (opted in). Meta validates and charges for each delivered template message — those charges are billed separately by Meta, outside your Tech Pad plan.

Webhooks

Outbound webhooks push message lifecycle events to your HTTPS endpoint in near real time. Manage endpoints from Developers → Webhooks — add, edit, pause, test and delete.

Events

EventFires when
message.sentA message was accepted and sent by the WhatsApp platform.
message.deliveredThe message was delivered to the recipient’s device.
message.readThe recipient read the message.
message.failedThe message failed (undeliverable, template rejected, sender limit, …).
message.receivedAn inbound message arrived from a customer.
  • Endpoints must be HTTPS and reachable from the internet.
  • Each endpoint subscribes to a chosen subset of events; every event fires with a JSON payload containing the message id and status.
  • Use Test on an endpoint to send a sample delivery and verify your handler.
  • Paused endpoints keep their configuration but stop receiving events.

Rate limits

Messages are sent at up to your plan’s package rate. Actual throughput can be lower when Meta applies messaging-tier, phone-quality or account-level limits. Messages remain queued safely rather than being discarded.

PlanAPI calls / monthBase sending rate
Campaign StarterUp to 6 messages / minute
Launch10,000Package rate
Grow200,000Package rate
Scale2,000,000Package rate

Every request counts toward your API-call quota and is recorded in the API logs with its status code and duration.

Logs & monitoring

Developers → Logs keeps two views:

  • API logs — every API request: method, endpoint, HTTP status, template used and duration.
  • Webhook logs — every webhook delivery attempt and its outcome.

Use them to debug failed sends, confirm webhook delivery and audit integrations end to end.

Errors

Successful requests return a 2xx status. Failures return a non-2xx status with a JSON body describing the problem:

{
  "error": "Template not approved",
  "hint": "Check the template status in Templates — only APPROVED templates can be sent."
}
StatusMeaning
2xxRequest accepted / processed.
400Malformed request — missing or invalid fields.
401Missing or invalid API key.
403Key valid but not permitted for this action or workspace.
404Unknown number, template or resource.
429Rate limit or quota exceeded — retry after backoff.
5xxPlatform error — retry; check API logs and status page.

Try the API from the console.

The in-app API tester generates curl, JavaScript and PHP for every request.

Chat with us