WatificationDocs

Quickstart

Send your first WhatsApp OTP and test a webhook endpoint.

You need a connected, sendable WhatsApp number, an approved authentication template, and available API OTP quota. Use a recipient you control. These requests can send real messages.

Create an API key

Open Developers > API keys in the dashboard. Select Create API key, enter a Name, and select Create API key. Use Copy API key to save the key in your backend's secret storage. It is shown only once.

If a tab is missing, ask a workspace admin for access.

Find your sender and template

Open Developers > Overview. In Senders, copy the Sender ID and choose a template with Status APPROVED. Copy its Template name and Language exactly.

The sender ID is Watification's UUID for your WhatsApp number. The template must be a usable AUTHENTICATION template with one code parameter. See OTP requirements.

Send your first OTP

Replace the fake key, sender UUID, template name, language, and recipient below. The fictional code 483920 is supplied by your application; Watification does not generate or verify it. Use a new idempotency key for each new OTP.

Send an OTP
export WATIFICATION_API_KEY='wtf_xxxxxxxxxxxx_REPLACE_WITH_YOUR_SECRET'
curl --fail-with-body --request POST \
  'https://api.watification.com/api/v1/otp/messages' \
  --header "Authorization: Bearer $WATIFICATION_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: login-example-001' \
  --data '{
    "to": "+15555550123",
    "senderId": "11111111-1111-4111-8111-111111111111",
    "template": { "name": "login_code", "language": "en" },
    "code": "483920",
    "reference": "login-example-001"
  }'

A successful send returns HTTP 202:

Acceptance response
{
  "messageId": "22222222-2222-4222-8222-222222222222",
  "status": "queued",
  "reference": "login-example-001"
}

queued means accepted for sending. It does not confirm delivery or verify the code.

Check the status

Replace the UUID with the returned messageId. Keep the API key environment variable from the previous step.

Read an OTP message
curl --fail-with-body \
  'https://api.watification.com/api/v1/otp/messages/22222222-2222-4222-8222-222222222222' \
  --header "Authorization: Bearer $WATIFICATION_API_KEY"

The response includes status, sentAt, and failure. See OTP statuses. You can also inspect messages under Developers > Logs.

Add and test a webhook

Implement the signature verification and event handling before accepting events. Open Developers > Webhooks, select Add endpoint, enter your public HTTPS URL (for example https://example.com/webhooks/watification), and select Add endpoint. Save the secret using Copy webhook secret; it is shown once.

From the endpoint's actions, select Send test event, then View deliveries. The event type is ping. Confirm that your handler verifies the signature and responds with 2xx. Send another OTP to receive its outcome at the new endpoint.

On this page