FansquareAPI reference
Open the app

Receiving webhooks

Fan assignment updated

EVENTassignment.updated

The employee assigned to a fan changed: assigned_user_id is the new assignee, or null when the assignment was removed.

Emitted for assignments made in the Fansquare app and for those made through this API (PUT and DELETE /v1/accounts/{account_id}/fans/{fan_id}/assignment): an integration also receives the echo of its own writes. A write can emit even when it changes nothing, for example when it assigns the employee already assigned, or when it removes through this API an assignment that was not set.

created_at is the time of the write.

Payload
{
  "id": "0199c7a2-5d4e-7b3a-9f1e-2c8d6b4a1e07",
  "type": "assignment.updated",
  "created_at": "2026-10-12T21:14:00.000Z",
  "api_version": "2026-07-06",
  "data": {
    "account_id": "c851d9d6-b90b-4958-aed2-2fdaa2fe21a3",
    "fan_id": "a6df8022-e509-4575-ad28-e29c2d1d42dc",
    "assigned_user_id": "ki9DZXxpgGz7KiDqHj88eCxHg56W"
  }
}

Delivery headers

  • Fansquare-Signaturestringrequired

    Signature of the delivery: v1= followed by the hexadecimal HMAC-SHA256 of {Fansquare-Signature-Timestamp}.{raw body}, keyed with the signing secret of the endpoint. Compute it over the raw body, before any JSON parsing, and compare in constant time.

  • Fansquare-Signature-Timestampintegerrequired

    Unix time, in seconds, at which this attempt was signed. Each attempt is signed again. Reject a delivery whose timestamp is more than 5 minutes away from your clock: it blocks replays of an intercepted delivery.

  • Fansquare-Event-Typestringrequired

    Event type, the type of the body.

  • Fansquare-Event-Idstringrequired

    Event id, the id of the body. The same across automatic retries and replays: deduplicate on it.

    format uuid
  • Fansquare-Delivery-Idstringrequired

    Id of this delivery of the event to this endpoint. The same across the automatic retries (10 seconds, 1 minute, then 5 minutes after a failed attempt), new on a replay. Any response other than a 2xx within 10 seconds, redirects included, is a failed attempt; after the last one the delivery is listed by GET /v1/webhooks/{endpoint_id}/failures.

    format uuid
  • User-Agentstringrequired

    Always Offmy-Webhooks/1.0.

Delivery body

  • idstringrequired

    Event id. The same for every endpoint that receives the event, and across automatic retries and replays: deduplicate on it. Also sent as the Fansquare-Event-Id header.

    format uuid
  • type"assignment.updated"required

    Event type. Also sent as the Fansquare-Event-Type header.

  • created_atstringrequired

    When the fact occurred (ISO 8601, UTC), not when this delivery was sent: a retry or a replay carries the original value. The description of each event says which instant it is.

    format date-time
  • api_versionstringrequired

    Version the payload is rendered in: the release date of the version pinned on the endpoint at its creation (the api_version of the endpoint), for example 2026-07-06.

  • dataobjectrequired
    • account_idstringrequired

      MYM account id of the creator (account.external_id in GET /v1/creators), as used by the /v1/accounts routes.

    • fan_idstringrequired

      MYM fan id.

    • assigned_user_idstring | nullrequired

      Fansquare id of the employee the fan is now assigned to (see GET /v1/employees), or null when the assignment was removed.

Payload
{
  "id": "0199c7a2-5d4e-7b3a-9f1e-2c8d6b4a1e07",
  "type": "assignment.updated",
  "created_at": "2026-10-12T21:14:00.000Z",
  "api_version": "2026-07-06",
  "data": {
    "account_id": "c851d9d6-b90b-4958-aed2-2fdaa2fe21a3",
    "fan_id": "a6df8022-e509-4575-ad28-e29c2d1d42dc",
    "assigned_user_id": "ki9DZXxpgGz7KiDqHj88eCxHg56W"
  }
}