[
  {
    "type": "iot.sim.activated",
    "serviceArea": "iot",
    "description": "A SIM\u0027s activation took effect on the network. Billing for the SIM starts now.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "iccid": "8944110068212345678",
      "label": "Car park barrier 3",
      "status": "active",
      "planId": "5b0e4f2a-8c1d-4e6f-9a3b-7d2c1e0f4a61",
      "activatedAt": "2026-09-25T09:31:02Z"
    }
  },
  {
    "type": "iot.sim.paused",
    "serviceArea": "iot",
    "description": "A SIM stopped passing data, sent once the network has applied it. \u0060reason\u0060 says why: \u0060customerPause\u0060 (you paused it), \u0060nonPayment\u0060 (a payment failed) or \u0060provider\u0060 (our operations team). A SIM stopped for using its allowance sends \u0060iot.sim.allowance_reached\u0060 instead.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "iccid": "8944110068212345678",
      "label": "Car park barrier 3",
      "status": "paused",
      "reason": "customerPause"
    }
  },
  {
    "type": "iot.sim.resumed",
    "serviceArea": "iot",
    "description": "A paused or suspended SIM is passing data again, sent once the network has applied it. \u0060previousReason\u0060 says why it had stopped: \u0060customerPause\u0060, \u0060nonPayment\u0060 or \u0060provider\u0060.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "iccid": "8944110068212345678",
      "label": "Car park barrier 3",
      "status": "active",
      "previousReason": "customerPause"
    }
  },
  {
    "type": "iot.sim.ceased",
    "serviceArea": "iot",
    "description": "A SIM was permanently ceased and has stopped passing data. Sent when the cease takes effect on the network, which for a cease dated in the future is that date.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "iccid": "8944110068212345678",
      "label": "Car park barrier 3",
      "status": "ceased",
      "ceasedAt": "2026-09-25T10:02:17Z",
      "billedUntil": "2026-10-01T00:00:00Z"
    }
  },
  {
    "type": "iot.sim.plan_changed",
    "serviceArea": "iot",
    "description": "A SIM moved to a new plan. Sent when the change takes effect: straight away for an upgrade, at renewal for a downgrade.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "iccid": "8944110068212345678",
      "label": "Car park barrier 3",
      "fromPlanId": "5b0e4f2a-8c1d-4e6f-9a3b-7d2c1e0f4a61",
      "toPlanId": "9c7a2e14-3b5d-4f60-8e21-6a4b0d9c3f75",
      "direction": "upgrade",
      "effectiveAt": "2026-09-25T00:00:00Z"
    }
  },
  {
    "type": "iot.sim.usage_threshold",
    "serviceArea": "iot",
    "description": "A SIM passed a threshold of its data allowance for the period: 80%, and 100% for a SIM that carries on at overage rates rather than pausing. Each threshold is sent once per period. SIMs in a shared data pool are not sent this individually.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "iccid": "8944110068212345678",
      "label": "Car park barrier 3",
      "thresholdPercent": 80,
      "allowanceBytes": 1073741824,
      "usedBytes": 859832320,
      "periodEnd": "2026-10-01T00:00:00Z"
    }
  },
  {
    "type": "iot.sim.allowance_reached",
    "serviceArea": "iot",
    "description": "A SIM used its whole data allowance for the period and has paused. It resumes when the allowance resets, or straight away if you upgrade its plan.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "iccid": "8944110068212345678",
      "label": "Car park barrier 3",
      "planId": "5b0e4f2a-8c1d-4e6f-9a3b-7d2c1e0f4a61",
      "allowanceBytes": 1073741824,
      "usedBytes": 1073741824,
      "periodEnd": "2026-10-01T00:00:00Z"
    }
  },
  {
    "type": "platform.webhook.disabled",
    "serviceArea": "platform",
    "description": "A webhook was switched off after failing for about 24 hours. Sent to your other webhooks. Fix the endpoint, then re-enable it.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "webhookId": "wh_4f1c2b7e9a0d4e6f8b3c5d7e9f1a2b3c",
      "url": "https://example.com/hooks/thingsim",
      "failingSince": "2026-09-24T09:12:45Z",
      "lastResponseStatus": 503
    }
  },
  {
    "type": "platform.webhook.test",
    "serviceArea": "platform",
    "description": "A test event, sent only to the webhook it was requested for, whatever types it has chosen.",
    "optIn": false,
    "available": true,
    "channels": [
      "webhook"
    ],
    "examplePayload": {
      "webhookId": "wh_4f1c2b7e9a0d4e6f8b3c5d7e9f1a2b3c",
      "message": "This is a test event. Answer with any 2xx status within 10 seconds."
    }
  }
]