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.
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:
{
"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.
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.