Connection events

The payloads of connection.updated and connection.revoked, the webhooks that tell you a partner changed or ended your connection.

Two webhook events follow the partner's changes to your connection. Only Technology Providers can subscribe to them. They arrive in the usual envelope, signed like every other event, with the partner's ID in partnerId. See Webhooks.

connection.updated#

Sent when the partner pauses you, resumes you, or changes the scopes it grants you.

data

connectionobjectrequired
The connection after the change — its new status and effective scopes.
change.reasonstringrequired
paused, resumed or scopes_changed.
change.previousScopesstring[]optional
The scopes before the change. Sent with scopes_changed.
reasonWhat to do
pausedHold your work for this partner. Its calls answer 403 connection_paused, and nothing else is delivered for it until it resumes you.
resumedCarry on, and catch up on what changed while you were paused.
scopes_changedReplace your copy of scopes with the connection's. Stop the work a removed scope allowed.

Treat reason as informational: new values can appear, so ignore ones you do not recognise and read the connection instead.

connection.updated
{
  "id": "evt_mg0b7r2cKd4pQ8sWn1Ya",
  "event": "connection.updated",
  "occurredAt": "2026-09-27T13:20:07.441Z",
  "environment": "production",
  "partnerId": "cm1partnerid000000000000001",
  "data": {
    "connection": {
      "id": "cm7c0nn3ct10n00000000001",
      "partnerId": "cm1partnerid000000000000001",
      "partner": { "name": "Sultan's Dine" },
      "status": "ACTIVE",
      "scopes": ["REGISTRATION", "INVENTORY"],
      "grantedScopes": ["REGISTRATION", "INVENTORY"],
      "modules": ["EVENT", "DINING"],
      "connectedAt": "2026-09-27T09:14:02.518Z",
      "scopesGrantedAt": "2026-09-27T13:20:07.412Z",
      "pausedAt": null,
      "revokedAt": null,
      "lastCallAt": "2026-09-27T13:02:19.874Z"
    },
    "change": {
      "reason": "scopes_changed",
      "previousScopes": ["REGISTRATION", "UPDATE", "INVENTORY"]
    }
  }
}

connection.revoked#

Sent when the partner disconnects you. Access has already ended: calls for this partner answer 404 connection_not_found, any code it had outstanding stops working, and the catalogue items you created for it are removed. Nothing more is delivered for it.

data

connectionobjectrequired
The connection, with status REVOKED and revokedAt set.
change.reasonstringrequired
disconnected_by_partner.
change.itemsRemovedintegerrequired
How many of the catalogue items you created for this partner were removed. They are not announced one by one: no catalog.item.deleted reaches you for them.

To connect again, the partner generates a new code and you claim it.

connection.revoked
{
  "id": "evt_mg0c1t9pLs2vX6kQa8Rd",
  "event": "connection.revoked",
  "occurredAt": "2026-09-27T15:44:30.019Z",
  "environment": "production",
  "partnerId": "cm1partnerid000000000000001",
  "data": {
    "connection": {
      "id": "cm7c0nn3ct10n00000000001",
      "partnerId": "cm1partnerid000000000000001",
      "partner": { "name": "Sultan's Dine" },
      "status": "REVOKED",
      "…": "…",
      "revokedAt": "2026-09-27T15:44:29.870Z"
    },
    "change": {
      "reason": "disconnected_by_partner",
      "itemsRemoved": 12
    }
  }
}