# Business

| Method | Path | Body or result |
|---|---|---|
| GET | `/business` | The business: `name`, `summary`, `about`, `accent_color`, `default_accent_color`, `logo_url`, `hours`, `open_now`, `next_opening`, `handoff`, `limits` |
| PATCH | `/business` | `{ "name": "...", "summary": "...", "about": "...", "accent_color": "#8A4B2A", "logo": { "data": "<base64>", "content_type": "image/png", "filename": "logo.png" }, "hours": { "timezone": "America/Santiago", "days": { "mon": ["09:00-18:00"] } } }`; returns the business |

The same row the [inbox's Business page](https://vatio.ai/docs/channels/inbox#business) edits: one
value for every environment, live on save. Only the keys sent change.
`summary` is the description the agent's prompt carries (up to 2,000
characters); `name` up to 100.

`hours` replaces the schedule as a whole: an IANA `timezone` and, per day
(`mon` … `sun`), a list of 24h `HH:MM-HH:MM` ranges that end after they start.
A day left out is closed. `"hours": null` clears it — someone is always
available — and `GET` answers `hours: null` the same way. An unknown zone or a
bad range answers 422.

The brand: `about` is what the widget shows before anyone writes (up to 2,000
characters), `accent_color` is `#RRGGBB` or `null` for Vatio's default, and
`logo` is a PNG, JPEG, WebP or GIF of up to 2 MB, base64 in the body; `"logo":
null` removes it. `logo_url` is the 200px avatar the widget and the chat page
show. A request with a bad logo saves nothing.

`handoff` is read-only, from the live agent: it is declared in `vatio.yml`.
