
# Ortam temasını güncelle

`PATCH /v1/branding` · izin `branding:write`

Ortam tema taslağını JSON birleştirme yamasıyla (`application/merge-patch+json`, RFC 7396) değiştirir. `null` verilen jeton (ya da `"light": null` gibi bütün grup) temizlenir ve yeniden kalıtımla gelir; `"theme": null` bütün jetonları temizler. Yalnız değişen jetonlar yazılır; hiçbir şey değiştirmeyen yama sürümü artırmaz. Değerler yazımda denetlenir: renkler `#rgb`/`#rrggbb`, `font.size_base` 14-18, `radius.card` 0-24, `radius.control` 0-16, `logo_height` 24-80. `logo`, `favicon` ve `background_image` [Markalama varlığı yükleme](/docs/api/management/branding/upload-asset) ile aynı türde yüklenmiş bir görseli adlandırmalıdır; yoksa alan `asset_not_found` hatası alır. Kontrast yayında denetlenir.

## İstek

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `If-Match` | başlık | evet | Taslağın son okunan `ETag` değeri (hiç yazılmadıysa `"0"`). Yoksa `428`, eskiyse `412`. |
| `theme` | nesne \| null | hayır | Kısmi `BrandingTheme`; her alan ve grup `null` olabilir. |

## Yanıt

`200 OK`; ortam taslağı ve `ETag` başlığı. `theme` yalnız ayarlı jetonları taşır; ayarsız jetonlar platform varsayılanından gelir.

```json
{
  "theme": {"mode": "light", "light": {"color": {"primary": "#0a3d91"}}, "logo_height": 40},
  "css": null,
  "page_template": null,
  "updated_at": "2026-10-05T09:30:00.123456Z"
}
```

## Hatalar

| HTTP | code | Ne zaman |
|---|---|---|
| 400 | `unknown_field` | Gövdede bilinmeyen alan var ya da gövde JSON nesnesi değil. |
| 412 | `precondition_failed` | `If-Match` taslağın güncel sürümüyle eşleşmiyor. |
| 415 | `unsupported_media_type` | İçerik türü `application/merge-patch+json` değil. |
| 422 | `validation_failed` | Bir jeton değeri geçersiz (`invalid_value`, `out_of_range`, `unknown_token`); `pointer` jetonu gösterir, ör. `/theme/light/color/primary`. |
| 428 | `precondition_required` | `If-Match` başlığı yok. |
| 401 | `unauthenticated` | Kimlik bilgisi yok, geçersiz ya da iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisinde gerekli izin yok. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` süresinden sonra yeniden deneyin. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```bash
curl -X PATCH https://api.eu.keenauth.com/v1/branding \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "3"' \
  -d '{"theme":{"light":{"color":{"primary":"#0a3d91"}},"radius":null}}'
```
