Webhooks

order.work_started

Shyni sends a POST to your endpoint when this event happens. Before you trust the body, verify the signature.

Work started (per work interval). Sent to the endpoint URL when the event happens. Answer 2xx within 15 seconds. Verify the signature before trusting the body. See the webhooks guide.

Header Parameters

Shyni-Signature*string

t=<unix seconds>,v1=<hex>[,v1=<hex>], HMAC-SHA256 of "<t>.<raw body>" keyed with the endpoint secret. See the webhooks guide.

Shyni-Event-Id*string

Same as the envelope id. Stable across retries, dedupe on it.

Shyni-Event-Type*string

Same as the envelope type.

Request Body

application/json
  1. body

Webhook body for order.* and deposit.* events; data is the order as the REST API returns it.

id*string

Event id, equal to the Shyni-Event-Id header.

type*string

Event name, e.g. order.confirmed.

createdAt*string
Formatdate-time
apiVersion*string
businessId*string

The business (studio) the event happened in - the value sent as Shyni-Business.

data*

Response Body

Delivery acknowledged. Any 2xx counts as delivered; the body is ignored.

Example payload

Shyni sends a POST to your endpoint

{  "id": "f3a1c2d4-6b7e-4a80-9c15-0e2d4b6a8010",  "type": "order.work_started",  "createdAt": "2026-10-09T08:53:20Z",  "apiVersion": "v1",  "businessId": "5d0b8e4a-7c21-4f3e-9a66-1b2c3d4e5f60",  "data": {    "id": "68aa1b98-3c1e-4f0a-9d2b-5e7f1a2b3c4d",    "publicId": "84609120",    "state": "IN_PROGRESS",    "depositState": "PAID",    "currency": "CZK",    "depositAmount": 50000,    "depositPaidAt": "2026-10-09T09:12:00Z",    "scheduledStart": "2026-10-16T08:00:00Z",    "scheduledEnd": "2026-10-16T10:00:00Z",    "pickupAt": "2026-10-16T10:00:00Z",    "createdAt": "2026-10-09T08:53:20Z",    "updatedAt": "2026-10-09T08:53:20Z",    "externalRef": null,    "readyAt": null,    "customer": {      "id": "5e2f8a14-9c73-4b0d-a6e1-3d8b7f2c4a95",      "name": "Jan Novak",      "email": "jan@example.cz",      "phone": "+420 777 123 456"    },    "variant": "MEDIUM",    "subject": {      "id": "c9d1e5a0-2b64-4f7e-8a31-7f0b5d9c2e16",      "type": "CAR",      "attributes": {        "make": "Skoda",        "model": "Octavia",        "plate": "1AB 2345"      }    },    "serviceLines": [      {        "id": "a4c7e1d2-3b58-4f96-8d02-6e9b1c7f3a50",        "name": "Premium hand wash",        "price": 99000,        "durationMinutes": 120,        "packageHead": false,        "custom": false,        "serviceId": "5d0b8e4a-7c21-4f3e-9a66-1b2c3d4e5f60",        "packageId": null,        "optionAnswers": []      }    ],    "totalPrice": 99000,    "paidTotal": 50000,    "balanceDue": 49000,    "payments": [      {        "id": "deposit-68aa1b98-3c1e-4f0a-9d2b-5e7f1a2b3c4d",        "amount": 50000,        "method": "GATEWAY",        "recordedAt": "2026-10-09T09:12:00Z",        "reference": "3000123456"      }    ],    "appliedDiscountCode": null,    "note": null,    "cancellationReason": null,    "sourceChannel": "STOREFRONT",    "sourceLabel": null,    "utmSource": null,    "utmMedium": null,    "utmCampaign": null,    "referrerDomain": null,    "attribution": {      "utmSource": null,      "utmMedium": null,      "utmCampaign": null,      "utmTerm": null,      "utmContent": null,      "referrer": null,      "gclid": null,      "gbraid": null,      "wbraid": null,      "fbclid": null    },    "metadata": {},    "billing": null,    "cancelledBy": null,    "assignedWorkerId": "usr_3b8e"  }}