Webhooks

How the platform uses webhooks and how you can get event notifications.

Build status updates

The build workers (Android/iOS) report status to the API by calling an incoming webhook:

POST http://localhost:3001/api/builds/webhook/status
Header: x-build-secret: <BUILD_SERVER_SECRET or MAC_BUILDER_SECRET>
Body: {
  buildId: string,
  status: "IN_PROGRESS" | "COMPLETED" | "FAILED",
  artifactPath?: string,
  errorLog?: string,
  sizeBytes?: string,
  workerId?: string
}

This endpoint is for the platform build servers only. As a developer, to know when a build finishes, poll GET /api/apps/:appId/builds or use the build list in the Builder / Super Admin dashboard.

Billing webhooks (platform)

Stripe and PayPal send payment events to the platform at POST /api/billing/webhook and POST /api/billing/webhook/paypal. These are used for subscriptions and marketplace payments. Configuration is platform-level (STRIPE_WEBHOOK_SECRET, PAYPAL_WEBHOOK_ID). There is no per-tenant webhook URL for billing events.

Outbound webhooks (notifications)

The notifications module can send HTTP callbacks to a URL (e.g. for alerts or custom integrations). This is used internally by the platform. If you need a public API to register your own webhook URL for build or app events, check the roadmap or contact support.

Summary