## Get message

`GET https://whatsapp.paaltech.org/api/v1/businesses/{external_id}/messages/{id}`

A message's current status, timestamps and error. Prefer callbacks; use this when you cannot receive them.

Ability: `messages.read`

### Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `external_id` | string | yes | Your own ID for the business (Multi-SKUUL - the tenant ID). Max 191 characters. Pattern `^[A-Za-z0-9._:-]+$` |
| `id` | integer | yes | PaalChat's message ID (`data.id` from Send message). |

### Request

```bash
curl --request GET \
  --url 'https://whatsapp.paaltech.org/api/v1/businesses/presec/messages/2' \
  --header "Authorization: Bearer $PAALCHAT_TOKEN" \
  --header 'Accept: application/json'
```

### Responses

- **200** - The message.

```json
{
  "data": {
    "id": 2,
    "reference": "skuul-msg-8812",
    "wamid": "wamid.HBgMMjMzMjQxMjM0NTY3FQIAERgSQ0Q",
    "direction": "outgoing",
    "contact": "233241234567",
    "phone_number_id": "106540352242922",
    "type": "template",
    "template_name": "fees_reminder",
    "status": "failed",
    "error": {"code": "131026", "message": "Recipient is not on WhatsApp"},
    "pricing": null,
    "created_at": "2026-09-30T18:54:28+00:00",
    "sent_at": "2026-09-30T18:54:31+00:00",
    "delivered_at": null,
    "read_at": null,
    "failed_at": "2026-09-30T18:54:35+00:00"
  }
}
```

- **401** - unauthenticated - missing, invalid, revoked or expired token

```json
{
  "error": {"code": "unauthenticated", "message": "A valid product token is required."}
}
```

- **403** - missing_ability, product_suspended or product_token_required

```json
{
  "error": {
    "code": "missing_ability",
    "message": "This token does not have the ability this request needs."
  }
}
```

- **404** - not_found - not yours, or does not exist

```json
{"error": {"code": "not_found", "message": "Business not found."}}
```

- **429** - rate_limited - over 300 requests/minute for this product

```json
{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Slow down and retry after the Retry-After header."
  }
}
```

