FansquareAPI reference
Open the app

Receiving webhooks

Subscription created

EVENTsubscription.created

A fan subscribed to a creator of the agency: a first subscription, or a resubscription (is_resubscription). A renewal of a running subscription emits nothing. The payment itself also arrives as an order.created event with order_type subscription.

Usually emitted within seconds when MYM notifies the subscription, otherwise within minutes, when Fansquare detects it. A creator emits nothing until her first full synchronization is done: connecting a creator does not replay her current subscribers.

created_at is data.subscribed_at: the start of the subscription when MYM reports it, otherwise the time Fansquare detected it.

Payload
{
  "id": "0199c7a2-5d4e-7b3a-9f1e-2c8d6b4a1e07",
  "type": "subscription.created",
  "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",
    "fan_username": "alex_92",
    "creator_id": "m81IhLxdhzDGYs54rNp2",
    "is_resubscription": true,
    "price_cents": 1500,
    "currency": "EUR",
    "subscribed_at": "2026-10-12T21:14:00.000Z"
  }
}

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"subscription.created"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.

    • fan_usernamestring | nullrequired

      MYM username of the fan, or null when Fansquare does not know it yet.

    • creator_idstringrequired

      Fansquare id of the creator (see GET /v1/creators).

    • is_resubscriptionbooleanrequired

      True when the fan had already subscribed to this creator before, false for a first subscription.

    • price_centsinteger | nullrequired

      Price of the subscription in euro cents, as MYM reports it (0 for a free subscription). Null when the price is unknown: subscription in another currency, or subscription detected without its details.

    • currency"EUR"required

      Currency of price_cents: always EUR, Fansquare reports every amount in euros.

    • subscribed_atstringrequired

      Start of the subscription (ISO 8601, UTC) when MYM reports it, otherwise the time Fansquare detected it. Also the created_at of the event.

      format date-time
Payload
{
  "id": "0199c7a2-5d4e-7b3a-9f1e-2c8d6b4a1e07",
  "type": "subscription.created",
  "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",
    "fan_username": "alex_92",
    "creator_id": "m81IhLxdhzDGYs54rNp2",
    "is_resubscription": true,
    "price_cents": 1500,
    "currency": "EUR",
    "subscribed_at": "2026-10-12T21:14:00.000Z"
  }
}