Skip to main content

Get WhatsApp

Retrieve the current delivery state of a single transactional WhatsApp message.

Endpoint​

GET /whatsapp/:id

Returns: 200 OK

Path Parameters​

ParameterTypeDescription
idstringThe message ID returned from POST /whatsapp/send

Response​

{
"id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a",
"to": "+966512345678",
"template_name": "verification_code",
"language": "en",
"category": "AUTHENTICATION",
"status": "read",
"failure_reason": null,
"sent_at": "2026-03-08T12:00:03.000Z",
"created_at": "2026-03-08T12:00:00.000Z"
}

Status Values​

status advances as the provider reports each step. It is not guaranteed to reach read — that depends on the recipient's privacy settings.

StatusDescription
queuedAccepted by Arsel, not yet handed to the provider
sentThe provider accepted it and returned a message ID
deliveredConfirmed delivered to the recipient's device
readThe recipient opened the message
failedThe send failed — see failure_reason
Template parameters are never returned

parameters is deliberately absent from every response. For an authentication template that field holds the one-time code, and an endpoint that reads codes back out would turn a leaked API key into an account-takeover tool.


Examples​

curl "https://api.arsel.sa/v1/whatsapp/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a" \
-H "Authorization: Bearer $ARSEL_API_KEY"

Error Responses​

{
"status_code": 404,
"name": "not_found",
"message": "Message not found"
}