Skip to main content

What it is

When an async task finishes, VMEG sends an HTTP POST with a JSON body to your configured webhook URL. Verify X-Timestamp and X-Signature as described in Webhook verification. The create-async HTTP response only confirms acceptance (taskId, etc.). Deliverables arrive in this webhook body, not in that response.

Common envelope

All async completion callbacks share the same top-level shape. Product-specific fields live in data:

Deduplicate by pipelineKey

VMEG assigns one pipelineKey per accepted async run. It appears in every webhook POST for that completion.
pipelineKey is for webhook delivery deduplication. It is not the same as X-Idempotency-Key on create-async (which prevents duplicate task submission). One accepted async job has one pipelineKey; data.taskId identifies the task but retries are keyed by pipelineKey.

The event field

event is a string in the JSON body that tells your server which Open API product completed. Use it to route parsing logic (switch on event, then read data).
In API reference, the Callbacks block on each create-async page is named for OpenAPI tooling. The value you must implement against is the event field inside the POST JSON, not that section title.

Event values by product

Today, async task completion uses only these four event values. If we add more callback types later, they will be documented here and in the matching Callbacks schema.

Example handler routing

Per-endpoint request schema

Field-level types and nested properties are defined under Callbacks on each create-async operation in API reference (linked in the table above).