Skip to main content
Every outbound message moves through a small state machine. Knowing the status tells you what you can still do and which webhook to expect.

Scheduled message statuses

When you pass send_at on POST /v1/messages, LazyApp stores a scheduled row and returns 202 instead of sending immediately. List with GET /v1/messages/scheduled. Cancel while pending.

Message statuses

After accept (or after a schedule fires), the message row uses: POST /v1/messages returning 201 means accepted, not delivered. Poll GET /v1/messages/{uuid} only for debugging; subscribe to webhooks in production.

Which status a new message gets

There is no draft or multi-platform partial state — one send targets one WhatsApp number and one contact.

What you can do

There is no unpublish: WhatsApp does not let you delete another person’s delivered message via the business API the way some social networks do. Contacts can delete for themselves; you may see message.deleted when coexistence reports a revoke.

Tracking with webhooks

See Webhook events for payload shapes.