# Record a message's delivery status

Moves one outbound message to sent, delivered, read, failed or cancelled, stamping delivered_at and read_at the first time each is reached. For a caller holding OUR message id; a device reporting by the carrier's id uses POST /v1/comms/outbound/receipt, which writes the same columns. A word the schema does not know is refused, never quietly stored.

Access class: `workspace`.

## Endpoint

`PATCH /v1/comms/messages/{id}/status`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| id | path | string | Yes |

## Request body

Content type: `application/json`.

```json
{
  "body": {
    "status": "string"
  },
  "params": {
    ":id": "string"
  },
  "query": {}
}
```

## Responses

### 200

the action's answer

Content type: `application/json`.

```json
{
  "call": {
    "ai_summary": "string",
    "answered_at": "string",
    "duration_seconds": 1,
    "ended_at": "string",
    "provider": "string",
    "recording_count": 1,
    "recording_url": "string",
    "result": "string",
    "started_at": "string",
    "transcript": "string"
  },
  "content": "string",
  "content_html": "string",
  "conversation_id": 1,
  "delivered_at": "string",
  "delivery": {
    "attempts": 1,
    "claimed_at": "string",
    "claimed_by": "string",
    "error": "string",
    "next_attempt_at": "string",
    "settled_at": "string",
    "state": "string"
  },
  "direction": "string",
  "external_id": "",
  "id": 1,
  "is_deleted": true,
  "medium": "string",
  "occurred_at": "string",
  "parent_message_id": 1,
  "read_at": "string",
  "recorded_at": "string",
  "sender_id": 1,
  "sender_name": "string",
  "sender_type": "string",
  "status": "string",
  "subject": "string",
  "text": {
    "error_code": "string",
    "error_message": "string",
    "media_count": 1,
    "provider": "string",
    "segment_count": 1
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
