---
title: "Генерация завершена успешно"
method: POST
path: "generation.completed"
---

# Генерация завершена успешно

`POST generation.completed` (webhook)

Если при `submit` был передан `webhook_url`, Clipia отправит `POST` на
этот URL по успешном завершении генерации.

**Заголовки подписи** (HMAC-SHA256):
- `X-Clipia-Webhook-Id` — UUID доставки.
- `X-Clipia-Timestamp` — Unix-время (секунды).
- `X-Clipia-Signature` — формат `t=<ts>,v1=<hmac>`, где
  `hmac = HMAC_SHA256(secret, "{timestamp}.{raw_body}")` в hex.
  `secret` — webhook signing secret из личного кабинета.

Проверяйте подпись timing-safe сравнением и отбрасывайте доставки старше
окна свежести (по умолчанию 300 секунд). Обрабатывайте идемпотентно по
`request_id` (возможна повторная доставка). Ожидается ответ `2xx` в
течение 10 секунд; иначе — ретраи с экспоненциальной задержкой до 6 попыток.

## Headers

- `X-Clipia-Webhook-Id` string, uuid, required
- `X-Clipia-Timestamp` integer, required
- `X-Clipia-Signature` string, required

## Payload

- WebhookSuccess: Payload вебхука об успешном завершении генерации.
  - `request_id` string, uuid, required
  - `status` 'OK', required: Признак успеха.
  - `payload` object, required
    - `model` string, required
    - `output` object, required: Результат генерации (медиа-URL на `media.clipia.ai`): `images: [{ url }]`, `video: { url }` либо `audio: { url, format? }` вместе с `audios: [{ url, format? }]` (все варианты трека; первый совпадает с `audio`). ⚠️ Payload вебхука компактнее ответа `GET /v1/requests/{id}`: поле `original_url` в него не кладётся. Если нужен оригинал в полном качестве — запросите результат по `request_id`.
    - `cost` number, required: Итоговая стоимость в кредитах.

## Acknowledgement `200`

Доставка принята получателем.

---

[API](https://skmtc.dev/clipia/apis/clipia-api.md) · [All operations](https://skmtc.dev/clipia/apis/clipia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/clipia/apis/clipia-api/revisions/cc55924a3381?raw)
