Request
curl -X POST https://api.beaconbox.eu/api/v1/messages/v55favd767qu/whatsapp \
-H "Authorization: Bearer $BEACONBOX_API_KEY"
-H "Idempotency-Key: 8f2b1c04-3d6a-4e55-9a12-77c0b4e9d100"client.messages.resend_whatsapp(message_id)$client->messages->resendWhatsApp($messageId)Path parameters
| Name | Type | Description |
|---|---|---|
public_id | string |
Response
Returns 200.
| Field | Type | Description |
|---|---|---|
queued | boolean | |
credits | integer | Credits this message will cost when Meta accepts it. One per message, adjusted for the destination country, the same flat rate as SMS. |
skipped_reason | string | null | Why no WhatsApp message was queued. One of: sending_paused, unsubscribed, disabled_by_request, whatsapp_not_enabled, whatsapp_disabled, country_not_allowed, no_phone, phone_conflict, not_opted_in, stopped, not_reachable, template_not_sendable, insufficient_credit, rate_limited, platform_limited. whatsapp_not_enabled means WhatsApp has not been switched on for your business yet. whatsapp_disabled means your WhatsApp mode is off. template_not_sendable means there is no approved template for this message: either the push did not carry both reference and order_status, or the reference or business name cannot be shown (yours to fix), or the template for its status is still in review at Meta (ours to fix). Nothing is charged either way. Treat an unrecognised value as 'not queued' rather than as an error; the list grows. |
sms_fallback | boolean | Whether an SMS is armed to follow if this WhatsApp message proves undeliverable: your sms_if_whatsapp_fails, confirmed. False when you didn't ask, when nothing was queued to fail, or when this push already sent an SMS. If it fires, the SMS is a separate send with its own credit; poll the message to see it. |
escalates_at | date-time | null | Set when escalate_if_unread_after_minutes armed this channel instead of sending it. See SmsOutcome.escalates_at, same contract on both channels. |
Errors
Failures are { "error_code": "..." } with a stable dotted code. See Errors for the codes worth branching on and the three outcomes that look like failures and are not.
This is a write, so it requires an Idempotency-Key header. A request without one is refused with 422. See Idempotency.
