---
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
---

[ 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 or Yarn ](/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 