# document.updated

> A document was renamed, moved or released.

A document was renamed, moved or released. `changed` names the fields.

**Needs:** `documents:read` on the subscription's key · **Subject:** `document`

## Envelope

```json
{
  "id": "evt_…",
  "type": "document.updated",
  "timestamp": "2027-05-01T09:00:00Z",
  "subject": {
    "object": "document",
    "id": "<id>",
    "tripId": "<tripId>"
  },
  "changed": [
    "title"
  ],
  "data": {}
}
```

## `data`

`data` is the document exactly as [Get a document](https://api.bymundi.com/docs/reference/documents.get.md) returns it, read at delivery time with the subscription key's permissions.

| Field | Type | Required | Description |
|---|---|---|---|
| `object` | "document" | yes |  |
| `id` | uuid | yes |  |
| `tripId` | uuid | yes |  |
| `folderId` | uuid \| null | yes | The folder it is filed in; null = loose (in no folder). |
| `name` | string | yes |  |
| `mimeType` | string | yes |  |
| `byteSize` | integer | yes | ≥ 0 |
| `status` | "pending" \| "ready" | yes | `pending`: reserved, the upload is not complete — never listed. `ready`: a document. |
| `visibility` | "staff" \| "traveler" | yes | `staff`: internal, only the agency sees it. `traveler`: released to the trip's travelers. |
| `visibleToTravelersNow` | boolean | yes | Released AND the trip is published: the traveler's app shows it right now. |
| `visibleAt` | string \| null | yes | When it was last released to travelers; null while internal. |
| `visibleBy` | object \| null | yes |  |
| `visibleBy.id` | string | yes |  |
| `visibleBy.name` | string \| null | yes |  |
| `uploadedBy` | object \| null | yes |  |
| `uploadedBy.id` | string | yes |  |
| `uploadedBy.name` | string \| null | yes |  |
| `createdAt` | string | yes |  |
| `updatedAt` | string | yes |  |
| `appUrl` | string \| null | yes | The trip's Documents tab in bymundi. |

Verify the signature before trusting the body: [Webhooks guide](https://api.bymundi.com/docs/guides/webhooks.md#verifying-signatures).
