---
description: Understand the Capawesome Cloud webhook payload — the event envelope, common fields, IDs, and timestamps.
title: Webhook Payload Structure - Capawesome
image: https://capawesome.io/docs/assets/images/social/cloud/webhooks/payload-structure.png
---

<!doctype html> 

[Skip to content ](#payload-structure) 

[🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode. ](/blog/announcing-the-capacitor-vault-plugin/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Securing Webhooks ](/docs/cloud/webhooks/securing/)
* [ Delivery & Retries ](/docs/cloud/webhooks/delivery-and-retries/)
* [ Best Practices ](/docs/cloud/webhooks/best-practices/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

# Payload Structure[¶](#payload-structure "Permanent link")

Every webhook request (using the `Raw` format) contains a JSON body with two top-level fields:

* `event` — the [event type](/docs/cloud/webhooks/event-types/) that triggered the request.
* `data` — the event payload.

Here is an example of a `job_finished` event:

`[](#%5F%5Fcodelineno-0-1){
[](#%5F%5Fcodelineno-0-2)  "event": "job_finished",
[](#%5F%5Fcodelineno-0-3)  "data": {
[](#%5F%5Fcodelineno-0-4)    "id": "16555c02-a320-4bec-a14a-52754d783970",
[](#%5F%5Fcodelineno-0-5)    "appBuildId": "647d1fe4-9cb7-4f25-afaf-7a0c13a1bb8c",
[](#%5F%5Fcodelineno-0-6)    "appDeploymentId": null,
[](#%5F%5Fcodelineno-0-7)    "appId": "70922e93-0944-48cc-a560-61135ab291ad",
[](#%5F%5Fcodelineno-0-8)    "finishedAt": 1771143284003,
[](#%5F%5Fcodelineno-0-9)    "inProgressAt": 1771143275311,
[](#%5F%5Fcodelineno-0-10)    "inProgressTimeInSeconds": 8,
[](#%5F%5Fcodelineno-0-11)    "organizationId": "a7249949-a705-4952-a293-a06df84950dc",
[](#%5F%5Fcodelineno-0-12)    "pendingAt": 1771143256381,
[](#%5F%5Fcodelineno-0-13)    "queuedAt": null,
[](#%5F%5Fcodelineno-0-14)    "stack": "macos-tahoe",
[](#%5F%5Fcodelineno-0-15)    "status": "canceled",
[](#%5F%5Fcodelineno-0-16)    "totalTimeInSeconds": 27,
[](#%5F%5Fcodelineno-0-17)    "createdAt": 1771143256161,
[](#%5F%5Fcodelineno-0-18)    "createdBy": "f624e455-b19c-4f17-8282-e4a7a02597f3"
[](#%5F%5Fcodelineno-0-19)  }
[](#%5F%5Fcodelineno-0-20)}
`

## Reading the payload[¶](#reading-the-payload "Permanent link")

The exact fields inside `data` depend on the event type, but a few conventions hold across all of them:

* **IDs are UUIDs.** Fields like `id`, `appId`, and `organizationId` identify the resource and let you correlate the event with what you already know.
* **Timestamps are Unix epoch milliseconds.** Lifecycle fields such as `queuedAt`, `pendingAt`, `inProgressAt`, and `finishedAt` mark each stage; a `null` means that stage didn't occur (here, the job was canceled before it queued).
* **`status` carries the outcome** of a finished job — for example `succeeded`, `failed`, or `canceled` — which is usually the field your integration branches on.
* **Related resources are linked by ID.** A job points back to its build or deployment via `appBuildId` / `appDeploymentId`; the unused one is `null`.

Always switch on the top-level `event` first, then read the `data` fields that apply to that event.

To make sure a request really came from Capawesome Cloud, [verify its signature](/docs/cloud/webhooks/securing/).

June 8, 2026 

Back to top