Skip to main content
In this guide you will schedule a WhatsApp message to be sent at a future date. It takes less than 5 minutes.

What you will need

  • A Zapster API account (if you do not have one, create it here)
  • A connected instance (WABA or unofficial)
  • Your authentication token

1. Schedule a message

The send_at field is what turns a regular send into a schedule. Pass the date and time in the ISO 8601 format with a time zone.
If the response comes back with status 201, the message was scheduled. Keep the message_id, because it is what you use to cancel or check the status later. Notice that the send_at in the response comes in UTC, so -03:00 becomes +3 hours in the returned time.

2. Check the status

To confirm the message is still in the queue, use the list endpoint with date and status filters.
You will see the message with the scheduled status. Once the scheduled time passes, the status changes to sent (or failed if something went wrong during the send).

3. Cancel if you need to

Changed your mind? Cancel with a DELETE, passing the message_id.
You can only cancel messages that have not been sent yet. If the message already went out, the DELETE returns error 422.

Frequently asked questions

Yes. The minimum is 1 minute in the future. If you pass a date that is already in the past or less than 1 minute away, the API returns a validation error.
The system tries to send 3 times with a growing interval between attempts. If all of them fail, the message goes to the failed status with the error reason in the errors field.When the instance comes back, it does not automatically resend messages that already failed. You would need to schedule them again.
No. If you need to change the text, the recipient, or the time, cancel the existing message with DELETE /v1/wa/messages/:id and create a new one.
Check the history with GET /v1/wa/messages and filter by status=failed. The errors field in the response carries the code and description of the problem.Common reasons:
  • The instance was disconnected at send time
  • The WABA 24-hour window expired (error 131047)
  • The template was not found (error 132000)
  • The recipient’s number does not exist or is blocked
It depends on your plan:If you reach the limit, the API returns the max_scheduled_messages_reached error. You can cancel pending messages to free up space.
These fields depend on the recipient’s privacy settings on WhatsApp. If the person turned off read receipts, read_at will never be filled in. If there was a network issue, delivered_at may take a while to appear.The message status stays sent regardless of these fields.
Yes, both types. You do not need to change anything in the configuration. The API automatically detects the instance type and sends the right way.

Next steps