Skip to content
FolioSign inStart your trial

Webhook event catalogue

Partner events

7 events. All groups

partner.church.created#

A partner created a customer church through the API.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is church.

Fields of data.object for partner.church.created
FieldTypeDescription
country requiredstringThe ISO country code, empty when not set.
counts requiredobjectHow much the church holds.
members requiredintegerTeam members.
published_notes requiredintegerPublished notes.
teachings requiredintegerTeachings in the library.
created_at requiredstring (date-time)When the church was created.
deletion requiredobject | nullSet once deletion is scheduled.
purge_after requiredstring (date-time)When the data is removed.
requested_at requiredstring (date-time)When deletion was requested.
stage requiredenum: scheduled | purgedscheduled or purged.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
plan requiredobject | nullThe plan it is on, null before it has one.
id requiredstringThe plan id.
key requiredstringThe plan key.
name requiredstringThe plan name.
object requiredenum: planAlways plan.
sandbox requiredbooleanTrue for a free sandbox church that expires.
slug requiredstringThe church web address.
status requiredenum: active | suspended | deletion_scheduled | deletedWhere the church stands.
subscription_status requiredstringThe subscription status, empty without a subscription.
suspended_at requiredstring (date-time) | nullWhen it was suspended.
Example partner.church.created body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "country": "GB",
      "counts": {
        "members": 6,
        "published_notes": 96,
        "teachings": 148
      },
      "created_at": "2026-10-13T09:12:10Z",
      "deletion": {
        "purge_after": "2026-11-13T09:12:10Z",
        "requested_at": "2026-10-13T09:12:10Z",
        "stage": "scheduled"
      },
      "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "Grace Place",
      "object": "church",
      "plan": {
        "id": "plan_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "key": "church",
        "name": "Church",
        "object": "plan"
      },
      "sandbox": false,
      "slug": "grace-place",
      "status": "active",
      "subscription_status": "active",
      "suspended_at": "2026-10-13T09:12:10Z"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "partner.church.created"
}

partner.church.updated#

A customer church changed its name or web address.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is church.

Fields of data.object for partner.church.updated
FieldTypeDescription
country requiredstringThe ISO country code, empty when not set.
counts requiredobjectHow much the church holds.
members requiredintegerTeam members.
published_notes requiredintegerPublished notes.
teachings requiredintegerTeachings in the library.
created_at requiredstring (date-time)When the church was created.
deletion requiredobject | nullSet once deletion is scheduled.
purge_after requiredstring (date-time)When the data is removed.
requested_at requiredstring (date-time)When deletion was requested.
stage requiredenum: scheduled | purgedscheduled or purged.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
plan requiredobject | nullThe plan it is on, null before it has one.
id requiredstringThe plan id.
key requiredstringThe plan key.
name requiredstringThe plan name.
object requiredenum: planAlways plan.
sandbox requiredbooleanTrue for a free sandbox church that expires.
slug requiredstringThe church web address.
status requiredenum: active | suspended | deletion_scheduled | deletedWhere the church stands.
subscription_status requiredstringThe subscription status, empty without a subscription.
suspended_at requiredstring (date-time) | nullWhen it was suspended.

On updates, data.previous_attributes holds the earlier value of any of these that changed: name, slug, country.

Example partner.church.updated body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "country": "GB",
      "counts": {
        "members": 6,
        "published_notes": 96,
        "teachings": 148
      },
      "created_at": "2026-10-13T09:12:10Z",
      "deletion": {
        "purge_after": "2026-11-13T09:12:10Z",
        "requested_at": "2026-10-13T09:12:10Z",
        "stage": "scheduled"
      },
      "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "Grace Place",
      "object": "church",
      "plan": {
        "id": "plan_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "key": "church",
        "name": "Church",
        "object": "plan"
      },
      "sandbox": false,
      "slug": "grace-place",
      "status": "active",
      "subscription_status": "active",
      "suspended_at": "2026-10-13T09:12:10Z"
    },
    "previous_attributes": {
      "country": "Previous GB",
      "name": "Previous Grace Place",
      "slug": "Previous grace-place"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "partner.church.updated"
}

partner.church.suspended#

A customer church was suspended or reinstated. status says which.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is church.

Fields of data.object for partner.church.suspended
FieldTypeDescription
country requiredstringThe ISO country code, empty when not set.
counts requiredobjectHow much the church holds.
members requiredintegerTeam members.
published_notes requiredintegerPublished notes.
teachings requiredintegerTeachings in the library.
created_at requiredstring (date-time)When the church was created.
deletion requiredobject | nullSet once deletion is scheduled.
purge_after requiredstring (date-time)When the data is removed.
requested_at requiredstring (date-time)When deletion was requested.
stage requiredenum: scheduled | purgedscheduled or purged.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
plan requiredobject | nullThe plan it is on, null before it has one.
id requiredstringThe plan id.
key requiredstringThe plan key.
name requiredstringThe plan name.
object requiredenum: planAlways plan.
sandbox requiredbooleanTrue for a free sandbox church that expires.
slug requiredstringThe church web address.
status requiredenum: active | suspended | deletion_scheduled | deletedWhere the church stands.
subscription_status requiredstringThe subscription status, empty without a subscription.
suspended_at requiredstring (date-time) | nullWhen it was suspended.

On updates, data.previous_attributes holds the earlier value of any of these that changed: status, suspended_at.

Example partner.church.suspended body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "country": "GB",
      "counts": {
        "members": 6,
        "published_notes": 96,
        "teachings": 148
      },
      "created_at": "2026-10-13T09:12:10Z",
      "deletion": {
        "purge_after": "2026-11-13T09:12:10Z",
        "requested_at": "2026-10-13T09:12:10Z",
        "stage": "scheduled"
      },
      "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "Grace Place",
      "object": "church",
      "plan": {
        "id": "plan_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "key": "church",
        "name": "Church",
        "object": "plan"
      },
      "sandbox": false,
      "slug": "grace-place",
      "status": "active",
      "subscription_status": "active",
      "suspended_at": "2026-10-13T09:12:10Z"
    },
    "previous_attributes": {
      "status": "suspended",
      "suspended_at": "2026-10-12T09:12:10Z"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "partner.church.suspended"
}

partner.church.deleted#

A customer church was scheduled for deletion or removed. deletion.stage is scheduled or purged.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is church.

Fields of data.object for partner.church.deleted
FieldTypeDescription
country requiredstringThe ISO country code, empty when not set.
counts requiredobjectHow much the church holds.
members requiredintegerTeam members.
published_notes requiredintegerPublished notes.
teachings requiredintegerTeachings in the library.
created_at requiredstring (date-time)When the church was created.
deletion requiredobject | nullSet once deletion is scheduled.
purge_after requiredstring (date-time)When the data is removed.
requested_at requiredstring (date-time)When deletion was requested.
stage requiredenum: scheduled | purgedscheduled or purged.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
plan requiredobject | nullThe plan it is on, null before it has one.
id requiredstringThe plan id.
key requiredstringThe plan key.
name requiredstringThe plan name.
object requiredenum: planAlways plan.
sandbox requiredbooleanTrue for a free sandbox church that expires.
slug requiredstringThe church web address.
status requiredenum: active | suspended | deletion_scheduled | deletedWhere the church stands.
subscription_status requiredstringThe subscription status, empty without a subscription.
suspended_at requiredstring (date-time) | nullWhen it was suspended.

On updates, data.previous_attributes holds the earlier value of any of these that changed: status.

Example partner.church.deleted body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "country": "GB",
      "counts": {
        "members": 6,
        "published_notes": 96,
        "teachings": 148
      },
      "created_at": "2026-10-13T09:12:10Z",
      "deletion": {
        "purge_after": "2026-11-13T09:12:10Z",
        "requested_at": "2026-10-13T09:12:10Z",
        "stage": "scheduled"
      },
      "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "Grace Place",
      "object": "church",
      "plan": {
        "id": "plan_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "key": "church",
        "name": "Church",
        "object": "plan"
      },
      "sandbox": false,
      "slug": "grace-place",
      "status": "active",
      "subscription_status": "active",
      "suspended_at": "2026-10-13T09:12:10Z"
    },
    "previous_attributes": {
      "status": "suspended"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "partner.church.deleted"
}

partner.church.plan_changed#

A customer church moved to a different plan.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is church.

Fields of data.object for partner.church.plan_changed
FieldTypeDescription
country requiredstringThe ISO country code, empty when not set.
counts requiredobjectHow much the church holds.
members requiredintegerTeam members.
published_notes requiredintegerPublished notes.
teachings requiredintegerTeachings in the library.
created_at requiredstring (date-time)When the church was created.
deletion requiredobject | nullSet once deletion is scheduled.
purge_after requiredstring (date-time)When the data is removed.
requested_at requiredstring (date-time)When deletion was requested.
stage requiredenum: scheduled | purgedscheduled or purged.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
plan requiredobject | nullThe plan it is on, null before it has one.
id requiredstringThe plan id.
key requiredstringThe plan key.
name requiredstringThe plan name.
object requiredenum: planAlways plan.
sandbox requiredbooleanTrue for a free sandbox church that expires.
slug requiredstringThe church web address.
status requiredenum: active | suspended | deletion_scheduled | deletedWhere the church stands.
subscription_status requiredstringThe subscription status, empty without a subscription.
suspended_at requiredstring (date-time) | nullWhen it was suspended.

On updates, data.previous_attributes holds the earlier value of any of these that changed: plan.

Example partner.church.plan_changed body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "country": "GB",
      "counts": {
        "members": 6,
        "published_notes": 96,
        "teachings": 148
      },
      "created_at": "2026-10-13T09:12:10Z",
      "deletion": {
        "purge_after": "2026-11-13T09:12:10Z",
        "requested_at": "2026-10-13T09:12:10Z",
        "stage": "scheduled"
      },
      "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "Grace Place",
      "object": "church",
      "plan": {
        "id": "plan_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "key": "church",
        "name": "Church",
        "object": "plan"
      },
      "sandbox": false,
      "slug": "grace-place",
      "status": "active",
      "subscription_status": "active",
      "suspended_at": "2026-10-13T09:12:10Z"
    },
    "previous_attributes": {
      "plan": {
        "id": "plan_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "key": "church",
        "name": "Church",
        "object": "plan"
      }
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "partner.church.plan_changed"
}

partner.church.usage_threshold#

A customer church used up a share of one of its plan allowances.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is church.

Fields of data.object for partner.church.usage_threshold
FieldTypeDescription
country requiredstringThe ISO country code, empty when not set.
counts requiredobjectHow much the church holds.
members requiredintegerTeam members.
published_notes requiredintegerPublished notes.
teachings requiredintegerTeachings in the library.
created_at requiredstring (date-time)When the church was created.
deletion requiredobject | nullSet once deletion is scheduled.
purge_after requiredstring (date-time)When the data is removed.
requested_at requiredstring (date-time)When deletion was requested.
stage requiredenum: scheduled | purgedscheduled or purged.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
plan requiredobject | nullThe plan it is on, null before it has one.
id requiredstringThe plan id.
key requiredstringThe plan key.
name requiredstringThe plan name.
object requiredenum: planAlways plan.
sandbox requiredbooleanTrue for a free sandbox church that expires.
slug requiredstringThe church web address.
status requiredenum: active | suspended | deletion_scheduled | deletedWhere the church stands.
subscription_status requiredstringThe subscription status, empty without a subscription.
suspended_at requiredstring (date-time) | nullWhen it was suspended.
usage_threshold requiredobjectThe allowance that crossed this share.
consumed requiredintegerWhat has been used this period.
included requiredintegerWhat the plan includes, with credits.
meter requiredstringThe allowance, such as hours or asks.
percent requiredintegerThe share of the allowance used when this was sent: 80 or 100.
period_start requiredstring (date-time)The first day of the billing period.
Example partner.church.usage_threshold body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "country": "GB",
      "counts": {
        "members": 6,
        "published_notes": 96,
        "teachings": 148
      },
      "created_at": "2026-10-13T09:12:10Z",
      "deletion": {
        "purge_after": "2026-11-13T09:12:10Z",
        "requested_at": "2026-10-13T09:12:10Z",
        "stage": "scheduled"
      },
      "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "name": "Grace Place",
      "object": "church",
      "plan": {
        "id": "plan_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "key": "church",
        "name": "Church",
        "object": "plan"
      },
      "sandbox": false,
      "slug": "grace-place",
      "status": "active",
      "subscription_status": "active",
      "suspended_at": "2026-10-13T09:12:10Z",
      "usage_threshold": {
        "consumed": 32,
        "included": 40,
        "meter": "hours",
        "percent": 80,
        "period_start": "2026-10-13T09:12:10Z"
      }
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "partner.church.usage_threshold"
}

partner.key.issued#

A partner issued an API key for a customer church. The secret is never included.

Account facts about the church, its keys and connections: ids, names the church chose, scopes, roles and states. Secrets, tokens and key values are never included.

data.object.object is api_key.

Fields of data.object for partner.key.issued
FieldTypeDescription
churchobjectThe customer church the key belongs to, on partner keys.
id requiredstringThe church id.
name requiredstringThe church name.
object requiredenum: churchAlways church.
slug requiredstringThe church web address.
church_ids requiredstring[]Customer churches a partner key may act for; empty means all.
created_at requiredstring (date-time)When it was created.
created_by requiredobject | nullThe team member who created it.
id requiredstringThe team member id.
object requiredenum: userAlways user.
expires_at requiredstring (date-time) | nullWhen the key stops working.
id requiredstringThe API key id.
last4 requiredstringThe last four characters of the key.
mode requiredenum: live | testlive or test.
name requiredstringThe label given to the key.
object requiredenum: api_keyAlways api_key.
partner requiredbooleanTrue for a partner key.
prefix requiredstringThe visible start of the key.
rate_limit_per_minute requiredinteger | nullThe per-minute limit, null for the plan default.
revoked_at requiredstring (date-time) | nullWhen it was revoked.
scopes requiredstring[]The permissions it was given.
Example partner.key.issued body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "church": {
        "id": "org_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Grace Place",
        "object": "church",
        "slug": "grace-place"
      },
      "church_ids": [],
      "created_at": "2026-10-13T09:12:10Z",
      "created_by": {
        "id": "usr_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "object": "user"
      },
      "expires_at": "2026-11-13T09:12:10Z",
      "id": "key_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "last4": "a91c",
      "mode": "live",
      "name": "CRM sync",
      "object": "api_key",
      "partner": false,
      "prefix": "folio_live_3f9d",
      "rate_limit_per_minute": 600,
      "revoked_at": "2026-10-13T09:12:10Z",
      "scopes": [
        "teachings:read",
        "notes:read"
      ]
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "partner.key.issued"
}

Verified against API version 0.0.0-dev. Generated from the live OpenAPI document.