Skip to main content
The WhatsApp API sends template messages through the WhatsApp Cloud API. Every message can be backed by a certified RFC 3161 timestamp for legal proof.
All WhatsApp endpoints use HTTP Basic Authusername = account e-mail, password = securityToken. See Authentication.

Concepts

  • Sender — a WhatsApp Business number you connect (or a system number provided by Escrybe). Managed under Senders.
  • Template — a pre-approved message structure (Meta approval required). Managed under Templates.
  • Message — an outbound send bound to a template and a recipient.

Endpoints

Full request/response schemas live in the API Reference tab.

Sending a message

The response returns a message_id, a public visual_id and a status of processing until payment is settled and the message is queued.
  • template_variables accepts three equivalent shapes: an object keyed by the variable name ({"codigo": "A1B2C3"} — names are listed in variable_names by templates/get), an object keyed by position starting at 1 ({"1": "A1B2C3"}, Meta’s own {{1}} numbering), or a list in template order (["A1B2C3"]). Every variable needs a non-empty value — WhatsApp refuses empty parameters, so the API rejects the request with 400 before charging, naming the variable that is missing.
  • The recipient’s phone is verified against WhatsApp — numbers not on WhatsApp are rejected with 400.
  • If the template’s header uses an image or document, one of media_url, media_file or media_base64 is required.
  • If a message stalls with status 2 (insufficient credits), top up your balance from the panel — queued messages are picked up automatically once the balance covers them.

Certified timestamps

Each message can produce attestation files for the accepted, sent, delivered and read phases. Download them all as a ZIP:

Recipient replies

Whatever the recipient sends back to the number that delivered your message is recorded by the platform. A reply is attributed to your order only when there is no doubt about which order it answers: If more than one account messaged the same number in that window, the reply is kept by the platform but never attributed to an order — it will not appear on yours, and never on someone else’s. Linked replies come back in GET /whatsapp/v1/get as replies[] (text, type, attachment name, forwarded flag, device identity hash, certified timestamp) and fire the tracking.updated webhook with event_detail_type: "reply" — see Webhooks. The order’s account owner also receives an e-mail when tracking notifications are enabled in the panel. The pericial report lists every linked reply, its RFC 3161 stamp and whether the message was forwarded or came from a different device than the previous reply. Automatic notice. The person who replies receives one automatic message per phone number (every 30 days at most) saying the number is an automated sending service and that they should use the contact details in the notification they received. It is sent from the platform’s own numbers only, never from a sender you own. auto_reply_sent_at, auto_reply_delivered_at and auto_reply_read_at on the message tell you whether it went out and whether it was read.
The official WhatsApp API exposes no profile photo of the person who replies. What identifies them is the phone number, the profile name WhatsApp reports and, when identity checking is enabled on the receiving number, the hash of their device’s identity key.

Templates

Templates must be approved by Meta before use. Create one, then poll its status until approved:
The final template name is normalized and prefixed with your user id (e.g. user42_order_confirmation) — the response’s name field is what you use when sending; your original text is kept as display_name. A sender-identification footer is automatically appended to the body, and image/document header templates submitted without media use a default Escrybe sample file for Meta approval.