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
statusand effectivescopes. change.reasonstringrequiredpaused,resumedorscopes_changed.change.previousScopesstring[]optional- The scopes before the change. Sent with
scopes_changed.
reason | What to do |
|---|---|
paused | Hold your work for this partner. Its calls answer 403 connection_paused, and nothing else is delivered for it until it resumes you. |
resumed | Carry on, and catch up on what changed while you were paused. |
scopes_changed | Replace 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.
{
"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
statusREVOKEDandrevokedAtset. change.reasonstringrequireddisconnected_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.deletedreaches you for them.
To connect again, the partner generates a new code and you claim it.
{
"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
}
}
}